<- Back to blog archive
Announcement

LavinMQ version 2.6.0 delivers new stream features and lavinmqperf updates

LavinMQ version 2.6.0 delivers new stream features and lavinmqperf updates

LavinMQ 2.6.0 has been released! This version includes powerful features added for streams, lavinmqperf improvements, and additional monitoring. Stream queues now support GIS filtering, allowing consumers to filter by geographic regions without processing the entire stream.

Highlights from version 2.6.0

  • Default configuration updated with AMQPS/MQTTS/HTTPS ports enabled by default #1487
  • Delayed message queue naming convention amq.delayed-<exchange name> #1461
  • GIS filtering in streams #1397
  • lavinmqperf now has a latency measurement #1474
  • Memory Pressure Monitoring added #1484

GIS filtering in stream

Streams functionality has been extended to include GIS filtering. This allows applications dealing with location data, such as fleet management, delivery services, or IoT sensor networks, and more, to filter messages based on a specific geographic boundary. GIS coordinates need to be in the message header, formatted as x-geo-lat and x-geo-lon. There are three types of GIS filters: radius, bounding box, and polygon.

q.subscribe(no_ack: false, args: AMQP::Client::Arguments.new({
  "x-stream-offset" => "first",
  "x-stream-filter" => {
    "geo-within-radius" => {
      "lat"       => 38.6246,
      "lon"       => -90.1850,
      "radius_km" => 5.0,
    },
  },
}))

lavinmqperf

lavinmqperf now measures and reports message latency. Users now easily detect performance bottlenecks and track message delivery consistency. Latency has been added to both the periodic output and the summary. Utilize the --measure-latency flag to show latency.

Summary:
Average publish rate: 294098.6 msgs/s
Average consume rate: 206163.4 msgs/s
Latency (ms):
  min:    3.773
  median: 444.541
  75th:   679.771
  95th:   801.807
  99th:   856.156

Memory pressure monitoring

With this LavinMQ release, users can prevent running out of memory in containerized environments with SystemD memory pressure monitoring. The integration enables better coordination with the OS during memory pressure. LavinMQ can detect when the operating system is under severe memory pressure and take steps to reduce its memory footprint.

Interested in making contributions to LavinMQ? Check out the contribution guidelines on GitHub. Join our discussion to share feedback, ideas, or showcase what you’ve created with LavinMQ.

The LavinMQ community is here to help. Join the Slack group and sign up for the newsletter.