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
- 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
Recent RabbitMQ articles
- RabbitMQ HA & Disaster Recovery: Cluster SizingSep 2026
- What a RabbitMQ Health Check Actually DeliversSep 2026
- VMware Licensing Cost in 2026Sep 2026
- RabbitMQ Dead Letter Queues: Enterprise GuideSep 2026
- RabbitMQ Exchanges, Queues & Bindings for MicroservicesSep 2026
- RabbitMQ on Kubernetes & OpenShift: DeploymentSep 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.