On this page
Migration in one paragraph
Decide whether the migration is worth it on the workload's real requirements, not the licence line. Inventory what the source actually does: queues, message sizes, ordering and delivery guarantees, consumers and their retry behaviour. Map every semantic that does not translate one-to-one, because that is where migrations fail. Build the target on quorum queues from the start. Cut over by running both systems in parallel with a bridge, validate against the objectives, and only then decommission. A migration that skips the inventory finds it during cutover.
Decide whether to migrate, and to what
The licence line is the smallest part of the comparison. The costs that decide it are dependency mapping, rebuilding integrations, parallel running and cutover risk on the workloads that matter. From IBM MQ, the case is usually cost and modernisation with a long tail of COBOL and JMS integrations to map. From Kafka, it is usually that the workload was never streaming. From a cloud broker, it is control, cost shape or lock-in. Say which one you are in before scoping anything.
Inventory the source before touching the target
Every queue and topic, message sizes and rates, ordering and delivery guarantees actually relied on, consumers and how they retry, dead-letter handling, security and TLS, and the integrations nobody has documented. The readiness checklist exists because most migrations that overrun did so on something that was not on the list.
Map the semantics that do not translate
IBM MQ's queue-manager-to-queue-manager channels, message groups and transactional puts have RabbitMQ equivalents, but not identical ones. Kafka's partitions, consumer groups and replay have no direct counterpart in exchanges and queues, and streams cover only part of the gap. Azure Service Bus sessions, scheduled messages and dead-letter semantics each need an explicit mapping. Write the mapping down per feature; a migration is a translation, and the untranslated words are the incidents.
Build the target cluster on quorum queues from day one
Do not migrate onto classic queues and plan a second migration to quorum queues later; it never happens on schedule. Design the target with the clustering guide: odd node count across failure domains, quorum queues for durable workloads, policies rather than per-queue arguments, and monitoring in place before the first message arrives.
If the source is an older RabbitMQ: classic to quorum, and the version hop
Migrating classic mirrored queues to quorum queues is its own project: a quorum queue cannot be converted in place, so each is recreated and consumers repointed, usually behind a policy change and a short drain. If a major version upgrade is in the same window, sequence the queue migration and the version hop separately, and confirm the Erlang dependency and feature-flag order before either.
Cut over without downtime: parallel run and a bridge
Run source and target side by side, bridge messages between them with a shovel or an application-level relay, move consumers first and producers last, and keep the bridge until the source is drained. Blue-green at the cluster level for version migrations; per-queue or per-service for broker migrations. The bridge is also the rollback: while it runs, moving back is a consumer repoint.
Validate against the objectives, then decommission
Message counts reconciled across the bridge, latency and throughput measured against the source under real load, the failover test run on the target, and the integrations nobody documented exercised end to end. Only then does the source come down, and only after a definitions export of the target is in version control. A migration is finished when the source is off and nobody noticed.
Frequently asked questions
How long does a migration to RabbitMQ take?
Weeks to scope properly and quarters to execute on a mid-size estate, with most of the time in inventory, semantic mapping and parallel running rather than in the broker itself. A migration that skips the inventory finds it during cutover.
Can I migrate from Kafka to RabbitMQ?
Yes, where the workload is a queue rather than a stream: request-reply, work distribution, routing by header or key, per-message acknowledgement. Replay and partition-ordered fan-out are the features that do not translate cleanly; streams cover some of that gap.
Can classic queues be converted to quorum queues in place?
No. A quorum queue is a different queue type and must be declared as such; the migration recreates each queue, repoints consumers, drains the classic queue and removes it, usually behind a policy change and a short drain window.
How do you migrate RabbitMQ without downtime?
Parallel run with a bridge: shovel or an application relay between source and target, consumers moved first, producers last, the bridge kept until the source is drained. Blue-green at cluster level for version migrations. The bridge doubles as the rollback.
Related
Where this gets done
The work behind this page, run by the same engineers who wrote it.
- 24/7 RabbitMQ support15-minute emergency SLA, versions back to 3.8.x
- Managed RabbitMQ servicesWe run the brokers, on your infrastructure or hosted
- RabbitMQ consultingArchitecture, migration and remediation from senior engineers
- RabbitMQ health checkEngineer-led assessment with a prioritised fix list
- Extended LTS support for RabbitMQ 3.xCVE backports for versions the community no longer patches
- RabbitMQ commercial licensingTanzu RabbitMQ licences from an authorized Broadcom partner
- RabbitMQ troubleshootingLive incidents and recurring faults
- RabbitMQ upgrades3.x to 4.x, planned and executed in your window
- RabbitMQ migrationsFrom IBM MQ, Kafka, cloud brokers or older RabbitMQ
- RabbitMQ implementation and architectureCluster design, DR and go-live
- RabbitMQ corporate trainingAdmin and developer courses taught by working engineers
Other RabbitMQ guides, comparisons and research
- GuideThe RabbitMQ Performance Tuning GuideRead the guide
- GuideThe RabbitMQ Streams GuideRead the guide
- GuideThe RabbitMQ Reliability Guide: Ten Failure Patterns and Their FixesRead the guide
- GuideThe RabbitMQ Disaster Recovery GuideRead the guide
- GuideThe RabbitMQ on Kubernetes GuideRead the guide
- GuideThe RabbitMQ Security and Hardening GuideRead the guide
- GuideThe RabbitMQ Monitoring and Alerting GuideRead the guide
- ComparisonManaged RabbitMQ Options ComparedSee the comparison
- ComparisonMessage Broker Support Options ComparedSee the comparison
- ResearchWhat Breaks in Production RabbitMQ: 145 Support Tickets, 2023 to 2026Read the research
- ResearchRabbitMQ in Production 2026: What 22 Assessed Estates Actually RunRead the research
- ResearchThe RabbitMQ CVE Register, 2026 EditionRead the research
Recent RabbitMQ articles
- VMware Licensing Cost in 2026Sep 2026
- The Tanzu Software in Your VCF You Are Not UsingSep 2026
- Production RabbitMQ Architecture for Enterprise TeamsSep 2026
- RabbitMQ HA & Disaster Recovery: Cluster SizingSep 2026
- RabbitMQ on Kubernetes & OpenShift: DeploymentSep 2026
- RabbitMQ End of Life Dates by Version (3.x and 4.x)Sep 2026
Need this done on your cluster?
AceMQ's senior RabbitMQ engineers support 130+ enterprise clients in 26+ countries under a 15-minute emergency SLA, with direct escalation to the RabbitMQ core team.