This release brings stronger durability guarantees for both standalone and clustered brokers, extends single sign-on (SSO) support to the management UI, and introduces a range of hot-path performance optimisations that reduce memory usage and deliver smoother, more consistent throughput.
Version highlights
Stronger durability guarantees
Publish confirms on a standalone node now wait until messages are flushed to disk using the syncfs system call. In a cluster, a publish or a durable definition change is confirmed only once every in-sync follower has the data. Together, these changes close a gap where a leader crash right after a confirm could previously elect a replica that never actually had the message, giving you stronger guarantees that a confirmed message is truly safe.
Note: For workloads where throughput matters more than this extra disk-flush step, a --no-sync option is available to restore the previous behaviour.
Centralised login, now including the dashboard
If you're already running an identity provider like Keycloak, Auth0, Microsoft Entra ID, or any OIDC-compliant provider, OAuth2/OIDC single sign-on is now supported in the management UI. This means you can retire local user management there too, and manage access to LavinMQ the same way you manage access everywhere else.
Better resource efficiency
Several changes reduce RAM usage and produce steadier memory graphs: eliminates the bulk of heap allocations in the publish/deliver hot path, zero-allocation MQTT subscription-tree matching, and on-demand garbage collection in place of the old periodic sweep. The result is lower memory usage and more predictable performance under load.
Also new: the 2.9.1 patch
The latest 2.9.1 patch includes several real-world fixes:
- OAuth2 login now works with identity providers that require a specific scope (e.g., Entra ID), via a new mgmt_scopes config option
- Improved JWKS key handling for OAuth/OIDC
- Shovel management endpoints now correctly enforce policymaker role permissions
- SNI certificate changes now apply during config reload
- A fix for stream consumer_offsets file overflow handling
Why upgrade to 2.9
This release is worth prioritising if durability, security, or resource footprint matter to your setup:
- Durability - closes a real failure window around leader crashes right after a publish confirm, so a confirmed message is guaranteed to have been replicated (or flushed to disk on standalone nodes) before your application moves on.
- Security - lets you fully centralise authentication through your existing identity provider, including the management dashboard, reducing the number of places local credentials can be forgotten, reused, or compromised.
- Efficiency - lower memory usage and steadier memory graphs mean fewer surprises under load and more headroom before you need to scale up.
Scheduled upgrades
We'll be scheduling upgrades to LavinMQ 2.9 across our customers' clusters over the coming weeks. If you have a preferred maintenance window or day for your upgrades, please let us know by contacting CloudAMQP Support and we'll do our best to accommodate it.
For more information about Scheduled Maintenances, please see our previous blog post here
Our support team is available 24/7 if you have questions about the upgrade process or want to talk through timing for your instances. Reach out via email to our CloudAMQP Support team at support@cloudamqp.com