Upgrading RabbitMQ is rarely just a version bump. Feature flags, Erlang/OTP compatibility, classic mirrored queue removal, and client library behavior all change between releases — and the failure usually surfaces mid-rollout. We plan the path, test it, and execute it with a rollback that actually works.
The only partner with direct RabbitMQ core team access
11 + senior RabbitMQ SMEs26 + countries served130 + enterprise customers15 min emergency SLA
Trusted for Mission-Critical RabbitMQ by Teams in Finance, Healthcare, Defense, Telecom, and More
Named by the RabbitMQ Core Team
The Featured Authorized Partner for RabbitMQ — named by the engineers who build it
AceMQ is the Featured Authorized Partner for RabbitMQ, named by the RabbitMQ Core Engineering Team — the people who write and maintain the broker. That recognition covers RabbitMQ support, licensing and professional services, and it makes AceMQ the only RabbitMQ partner with a direct line to the core team. When an escalation needs an answer that is not in the documentation, it does not stop at a support tier.
You do not have to take our word for it — RabbitMQ lists AceMQ on its own site.
RabbitMQ partner with a direct line to the Core Engineering Team
Support · Licensing · Services
the full scope the partner status covers
Below 72 cores
the only provider globally licensing commercial RabbitMQ under Broadcom's minimum
Is This You?
You probably need this if…
You're on RabbitMQ 3.8 or older and every upgrade attempt has been postponed
You need to move off classic mirrored queues before upgrading to 4.x, and don't know the blast radius
Your Erlang/OTP version constrains which RabbitMQ version you can actually run
A previous upgrade attempt failed partway through and you rolled back
You're running an end-of-life version with open CVEs and an audit deadline approaching
Feature flags from a prior upgrade were never enabled, blocking the next one
You can't get a maintenance window long enough for the upgrade path you were quoted
You have no non-production environment that genuinely matches production
Outcomes
Where you are now, and where you end up
Concrete state changes, not deliverable counts. This is what actually differs about your RabbitMQ estate when the engagement closes.
Before
Running an end-of-life RabbitMQ version with known CVEs and no viable upgrade plan.
After
On a current supported release, with a documented and repeatable upgrade procedure your team can run for the next version themselves.
Before
Classic mirrored queues that block the move to RabbitMQ 4.x, with unknown migration risk.
After
Migrated to quorum queues with correct member counts and sizing, validated under production-equivalent load.
Before
Upgrades attempted in a single long maintenance window that overruns and gets rolled back.
After
A rolling node-by-node upgrade executed with the cluster serving traffic throughout, and a tested rollback at each step.
Before
No confidence that client applications will behave correctly against the new broker version.
After
Client library compatibility verified per application, with the specific version bumps and code changes identified before the upgrade begins.
Before
Feature flags left disabled from prior upgrades, silently blocking future ones.
After
All required feature flags enabled in the correct order, with the dependency chain documented.
Scope
What's covered
Version Path Planning
Upgrades across 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and into 4.x, including the multi-hop paths required when you are several versions behind and cannot jump directly. Crossing a major version usually means reaching the latest 3.13 patch you have access to first (3.13.7 was the final community release; commercial builds continue past it) and enabling all feature flags before the jump to 4.x.
Classic to Quorum Migration
Classic mirrored queues are removed in RabbitMQ 4.x. We plan and execute the migration to quorum queues, including member sizing, memory implications, and the behavioral differences that affect your applications.
Erlang / OTP Compatibility
Each RabbitMQ release supports a specific Erlang/OTP range. We map your current Erlang version and its constraint, often OS packaging or an approved base image, and sequence the Erlang upgrade alongside the broker upgrade so every node stays compatible with the new version.
Feature Flag Sequencing
Feature flags must be enabled in order, and an upgrade will refuse to proceed if required flags from a prior version are still disabled. We audit current state and sequence enablement correctly.
Kubernetes & Operator Upgrades
Cluster Operator version upgrades, StatefulSet rolling update strategy, PodDisruptionBudget configuration, and PVC handling — so a node replacement during upgrade doesn't cost you quorum queue members.
Patch Releases & CVE Fixes
Most of the year's changes arrive as patch releases inside a series, not as new versions. We keep you on the latest patch of your series, roll each one through the cluster node by node, and, where a series has left community support, apply the patches the commercial license still ships or backport the CVE fix to the build you run.
Client Library Compatibility
Java, .NET, Python, Go, Ruby, and Node client behavior against the target version, including connection recovery semantics and the deprecations that surface as runtime failures rather than build errors.
The Engagement
How it actually runs
Every phase has a defined duration and a concrete artifact handed over at the end of it. You always know what stage you're in and what you've received.
Phase 11 week
Upgrade Assessment
We inventory what you actually run — RabbitMQ and Erlang/OTP versions per node, queue types and counts, enabled and pending feature flags, plugins, and every client library and version connecting to the cluster. The upgrade path is determined by the constraint you have least control over, and it is usually not the broker.
You receive
Full version and dependency inventory across the estate
Target version recommendation with the reasoning stated
Identified blockers ranked by effort and risk
Client library compatibility matrix per application
Phase 21–2 weeks
Upgrade Path & Runbook
RabbitMQ upgrades are not always single-hop. We define the intermediate versions required, the feature flag enablement order, whether a rolling in-place upgrade or a blue-green deployment fits your risk and capacity, and whether classic-to-quorum queue migration needs to happen before, during, or after. Every step gets a validation check and a rollback procedure, written against the release notes of each target version.
You receive
Step-by-step upgrade runbook with per-step validation
Rollback procedure tested at each hop, not just at the end
Queue migration plan where classic queues are in scope
Maintenance window requirements with realistic durations
Phase 31–2 weeks
Rehearsal in Non-Production
We run the full upgrade against an environment that matches production in the ways that matter — queue types, message volumes, and client behavior. This is where the surprises surface, which is the entire point of doing it. If you don't have a suitable environment, building one is part of the engagement.
You receive
Completed rehearsal with timings for each step
Runbook corrected against what actually happened
Performance comparison before and after upgrade
Confirmed rollback works from each intermediate state
Phase 4Scheduled window
Production Execution
A senior engineer runs or supervises the production upgrade with your team, node by node, with the cluster serving traffic. We monitor queue state, client reconnection, and message flow at every step, and we stop rather than push through if a validation check fails.
You receive
Executed production upgrade with live validation at each node
Post-upgrade verification report
Feature flag enablement completed in correct order
Handover so your team can run the next upgrade independently
Customer Success
Real RabbitMQ Results
See how enterprises trust AceMQ for their most critical RabbitMQ workloads.
In most clustered deployments, yes. We perform a rolling upgrade one node at a time while the cluster continues serving traffic: the node is put into maintenance mode with rabbitmq-upgrade drain, upgraded, restarted and confirmed back among the running cluster nodes before the next one starts, which requires that your clients handle reconnection correctly and that queue replication is configured to survive a node leaving. Single-node deployments cannot be upgraded without a brief outage — in that case we minimize and schedule the window rather than pretend otherwise.
No, and attempting it is a common cause of failed upgrades. RabbitMQ requires passing through intermediate versions so that feature flags are enabled in the correct order, and 4.x additionally removes classic mirrored queues, which means queue migration must happen before you get there. We map the specific hops your deployment needs — typically 3.8 to 3.11 or 3.12, then 3.13, then 4.x.
Classic mirrored queues are removed in RabbitMQ 4.x, so they must be migrated to quorum queues before that upgrade. Quorum queues behave differently — they are more memory-sensitive, have different member semantics, and handle poison messages differently. We plan the migration including member count sizing and validate application behavior against quorum queues under load before the cutover.
A straightforward single-hop upgrade on a well-understood cluster typically runs three to four weeks end to end, most of which is assessment and rehearsal rather than execution. Multi-hop upgrades from older versions, or upgrades requiring classic-to-quorum migration, commonly run six to ten weeks. The production execution itself is usually the shortest phase.
It substantially reduces risk, and where one does not exist we frequently build a representative environment as part of the engagement. Matching production exactly is rarely necessary — what matters is matching queue types, approximate message volumes, and client behavior, because those are what surface upgrade problems. A non-production environment with different queue types tells you very little.
Every step in the runbook has a tested rollback, validated during rehearsal rather than assumed. If a validation check fails during production execution, we stop and roll back to the last known-good state rather than pushing forward. This is precisely why the rehearsal phase exists — most upgrade failures we are called in to recover from happened because there was no tested rollback at the point of failure.
Yes. AceMQ is the Broadcom VMware Expert Advantage Partner of the Year for the Americas, and we support both open-source RabbitMQ and Tanzu RabbitMQ upgrades. For Tanzu deployments we also handle Cluster Operator upgrades, entitlement and licensing questions, and coordination with Broadcom support where an issue needs to go upstream.
The metadata store. From 4.3.0 RabbitMQ supports only the Raft-based Khepri metadata store; Mnesia was removed, and the old partition handling strategies went with it, so cluster_partition_handling now has no effect and should come out of rabbitmq.conf. Metadata, quorum queues and streams all follow Raft majority rules on 4.3, which is why we rehearse the move to 4.3 against a copy of your real definitions rather than an empty cluster.
Every patch release in your series, as it ships. RabbitMQ publishes patch releases within a series often: the 4.3 series went from 4.3.0 on 23 April 2026 to 4.3.6 on 16 September 2026, seven releases in under five months. Patches install as a rolling node-by-node change with the cluster serving traffic, so they belong in a routine monthly window rather than waiting for the next major upgrade.
As of 28 September 2026, only the 4.3 series is inside community support, until 30 November 2026. Community support ended for 4.2 on 31 July 2026, for 4.1 on 31 January 2026 and for 3.13 on 30 September 2024. Those series still receive patches under a commercial license: the project lists commercial support for 4.2 to 30 June 2030 and for 3.13 to 31 December 2029, and shipped 4.2.10 on 17 August 2026, after 4.2's community window closed. The full series-by-series table is in our RabbitMQ end-of-life guide.
Yes. If the series is still inside commercial support, we license and apply the patch releases the project ships for it. If it is past that, as 3.8 to 3.12 are, our extended LTS support backports CVE fixes to the exact build you run, so the upgrade can wait for a proper window without leaving known vulnerabilities open.
Run rabbitmq-diagnostics check_if_any_deprecated_features_are_used on the current cluster; it exits non-zero if a deprecated feature is in use. The current list includes transient non-exclusive queues, global QoS, RAM nodes, management metrics collection and AMQP address v1, and classic queue mirroring was removed in 4.0. Setting deprecated_features.permit.<feature> = false in non-production lets you test the application as if the feature were already gone. Not every feature can be detected at runtime (global QoS cannot), which is why we also review client code.
Get Off That End-of-Life Version Safely
Tell us what version you're on and what's blocking you. We'll map the actual upgrade path, including the hops and queue migrations most vendors leave out of the quote.
Get in Touch
Talk to a RabbitMQ Expert
Send us a message and we'll follow up within one business day — or book a free 30-min consultation directly.