RabbitMQ¶
Summary
RabbitMQ is a mature open-source message broker (MPL 2.0, stewarded by Broadcom) that speaks AMQP 0-9-1, AMQP 1.0, MQTT 3.1/3.1.1/5.0, STOMP and its own Stream protocol from one Erlang/OTP binary. The 4.x line made quorum queues and streams the only replicated data types (classic mirroring was removed in 4.0), made AMQP 1.0 a core protocol, and replaced Mnesia with the Raft-based Khepri metadata store: default in 4.2, the only option in 4.3. The latest release is 4.3.6 (2026-09-16).
Overview¶
RabbitMQ started (2007) as an AMQP 0-9-1 broker and grew into a multi-protocol messaging and streaming platform. It is strongest where messages need flexible routing (direct, topic, fanout, headers exchanges), per-message acknowledgement, dead-lettering and retries: work queues, RPC, and integration between heterogeneous services. Streams (3.9+) and super streams (3.11+) add Kafka-like append-only logs with offset-based replay.
Since 4.3 every piece of replicated state (metadata in Khepri, quorum queues, stream coordination) uses Raft semantics, so the cluster has one failure model: a majority of nodes must be online. See Explanation for internals.
Key Facts¶
| Attribute | Detail |
|---|---|
| Website | rabbitmq.com |
| Repository | rabbitmq/rabbitmq-server |
| Stars | ~13k+ (recorded by 2026-08) |
| Latest Version | 4.3.6 (2026-09-16); 4.2.10 (2026-08-17) on the previous series; 4.4 in development |
| Release cadence | New minor about every 6 months (4.0 Sep 2024, 4.1 Apr 2025, 4.2 Oct 2025, 4.3 Apr 2026) |
| Language / runtime | Erlang/OTP; 4.3.6 needs Erlang 27.0+ and supports up to 28.x |
| License | MPL 2.0 (server and tier-1 plugins); some OCF scripts Apache 2.0; client libraries carry their own licenses (for example the .NET client is dual MPL 2.0 / Apache 2.0) |
| Steward | Broadcom (via its November 2023 acquisition of VMware); core team unchanged |
| Community support | Latest minor series only; older series get patches only with a commercial license |
| Commercial offerings | VMware Tanzu RabbitMQ (Broadcom), CloudAMQP (84codes), Amazon MQ for RabbitMQ (4.2 and 4.3 supported) |
| Protocols | AMQP 0-9-1, AMQP 1.0 (core since 4.0), MQTT 3.1 / 3.1.1 / 5.0, STOMP, Stream protocol, WebSockets (MQTT, STOMP) |
| Metadata store | Khepri (Raft) only, since 4.3.0; Mnesia removed |
Evaluation¶
| Pros | Cons |
|---|---|
| Most flexible routing of the mainstream brokers (direct, topic, fanout, headers, consistent-hash, local-random, modulus-hash) | Streams lack tiered storage and the Kafka-scale ecosystem (Connect, Streams API) |
| Quorum queues give Raft durability, poison-message limits (default 20), priorities, delayed retry (4.3) | Erlang/OTP runtime: fewer operators with debugging experience |
| One consistent failure model since 4.3 (Khepri + quorum queues + streams) | Khepri needs a majority online even for metadata changes; minority nodes cannot declare queues |
| Multi-protocol in one broker, including AMQP 1.0 with SQL filter expressions on streams (4.2) | Upgrades are stepwise (3.13 -> 4.2 -> 4.3) and remove features (mirroring, CQv1, lazy mode, transient queues by default) |
| Mature Kubernetes operators, management UI, HTTP API, Prometheus metrics | Open-source patches only for the latest minor; older series need a Broadcom license |
| Federation and Shovel for WAN links and migrations | Not built for sub-millisecond request-reply at NATS-like footprint |
| Large 2026 security-advisory wave (about 90 GitHub advisories May to Sep 2026) requires staying on the latest patch |
Architecture¶
A three-node cluster: every node runs exchanges, queue replicas and a Khepri member; quorum queues and Khepri replicate with Raft, streams replicate through Osiris.
flowchart TB
Pub["Publisher<br/>(AMQP 0-9-1 / 1.0, MQTT, STOMP)"]
SPub["Stream client<br/>(port 5552)"]
subgraph N1["Node 1"]
Ex["Exchanges<br/>(direct, topic, fanout, headers)"]
QQL["Quorum queue leader"]
STL["Stream leader"]
CQ["Classic queue<br/>(single replica)"]
K1["Khepri member"]
end
subgraph N2["Node 2"]
QQF1["QQ follower"]
STR1["Stream replica"]
K2["Khepri member"]
end
subgraph N3["Node 3"]
QQF2["QQ follower"]
STR2["Stream replica"]
K3["Khepri member"]
end
Cons["Consumers"]
Pub --> Ex
Ex --> QQL
Ex --> CQ
Ex --> STL
SPub --> STL
QQL -.->|Raft| QQF1
QQL -.->|Raft| QQF2
STL -.->|"Osiris replication"| STR1
STL -.->|"Osiris replication"| STR2
K1 -.->|Raft| K2
K1 -.->|Raft| K3
QQL --> Cons
STL --> Cons
Details: Explanation: Component Overview.
Use Cases¶
- Work queues with acknowledgements, prefetch, retries, delivery limits and dead-lettering.
- Complex routing: topic exchanges with wildcards, headers exchanges for content-based routing.
- RPC with Direct Reply-To (AMQP 0-9-1, and AMQP 1.0 since 4.2).
- Existing AMQP 0-9-1 estates: RabbitMQ is the reference broker; many frameworks (Celery, Spring AMQP, MassTransit) target it. OpenStack uses it as its default message bus (OpenStack explanation).
- Streams for fan-out and replay without running Kafka; super streams for partitioned scale-out.
- IoT/MQTT: native MQTT (3.12+) with MQTT 5.0 (3.13+).
- Multi-site: Federation across regions, Shovel for migrations and bridges.
Licensing and Pricing¶
- Open source: MPL 2.0, free. Since 2024-06-01 Broadcom limits community support (GitHub issues, discussions, public patch releases) to the latest minor series, and only for regular contributors or users filing detailed reports (COMMUNITY_SUPPORT.md, announcement).
- VMware Tanzu RabbitMQ (Broadcom): commercial edition with extended patch releases for older series, Warm Standby Replication and 24x7 support; pricing is not public. Docs: Broadcom TechDocs (Open Source RabbitMQ notes) and the older VMware Tanzu RabbitMQ for Kubernetes docs.
- CloudAMQP (84codes): managed single-tenant clusters with per-plan pricing.
- Amazon MQ for RabbitMQ: AWS-managed brokers; RabbitMQ 4.2 support announced 2025-11 (AWS), in-place upgrades to 4 in 2026-05, and 4.3 support in 2026-09 (AWS). Quorum is the default queue type on 4.x brokers.
Ecosystem¶
- Operators: RabbitMQ Cluster Operator and Messaging Topology Operator for Kubernetes.
- Plugins: Management, Prometheus, Stream, MQTT, STOMP, Web-MQTT, Web-STOMP, Federation, Shovel, OAuth 2.0, LDAP, HTTP auth, Consistent-Hash exchange, peer discovery (K8s, AWS, Consul, etcd). Delayed-message exchange is a community plugin. Full list in Reference: Plugins.
- Clients: Team RabbitMQ maintains Java, .NET, Go (
amqp091-go), and AMQP 1.0 clients for Java, .NET, Go and Python; stream clients for Java, .NET, Go and Rust. Popular community clients:pika(Python),amqplib(Node.js, 0.10.7+ needed for 4.1+), Bunny (Ruby),lapin(Rust). - Tools:
rabbitmqctl,rabbitmq-diagnostics,rabbitmq-plugins,rabbitmq-queues,rabbitmq-streams,rabbitmq-upgrade,rabbitmqadminv2, PerfTest. - Observability: Prometheus endpoint on 15692 with official Grafana dashboards.
- Secrets: HashiCorp Vault has a RabbitMQ secrets engine for dynamic users.
Compatibility and Requirements¶
| Requirement | Detail |
|---|---|
| OS | Linux (Debian/Ubuntu and RPM repos from Team RabbitMQ), Windows, macOS (Homebrew); community Docker image rabbitmq |
| Erlang | 4.3.3+ and 4.2.9+: 27.0 minimum; 4.3.6: up to 28.x. Full matrix in Reference |
| Hardware | Minimum 4 CPU cores and 4 GiB RAM per production node |
| Memory | Flow control at vm_memory_high_watermark.relative = 0.6 (default) |
| Disk | SSD/NVMe; quorum queues fsync; default disk_free_limit of 50 MB is for development only |
| Network | 5672/5671 AMQP, 5552/5551 Stream, 1883/8883 MQTT, 61613/61614 STOMP, 15672 management, 15692 Prometheus, 4369 + 25672 inter-node. See Reference: Ports |
| Upgrade path | Only 4.2.x -> 4.3.x; 3.13.x -> 4.2.x first |
Latest Versions¶
| Series | Status (2026-09-25) | Highlights |
|---|---|---|
| 4.3 (4.3.0 2026-04-23, latest 4.3.6 2026-09-16) | Current, community-supported | Khepri only, Mnesia and partition-handling strategies removed; quorum queue strict priorities, delayed retry, consumer timeout, halved per-message memory; deprecated features denied by default; x-modulus-hash exchange in core |
| 4.2 (4.2.0 2025-10-28, latest public 4.2.10) | Community support ended 2026-07-31 | Khepri default for new clusters; SQL filter expressions for streams; Direct Reply-To over AMQP 1.0; message interceptors; local shovels |
| 4.1 (4.1.0 2025-04-15) | Commercial only | Quorum queue throughput (log reads offloaded to channels); AMQP 1.0 property filters; rabbitmqadmin v2; pre-auth frame_max 8192 |
| 4.0 (4.0.1 2024-09-18) | Commercial only, ends 2026-09-30 | Classic mirroring removed; AMQP 1.0 core; Khepri fully supported (opt-in); quorum queue priorities and default delivery limit 20; max message size 16 MiB |
| 3.13 (3.13.0 2024-02-22) | Commercial only | Experimental Khepri, MQTT 5.0, stream filtering |
| 3.12 and older | Unsupported |
Full dates and support windows: Reference: Release and Support Matrix. Track at rabbitmq.com/release-information.
Alternatives¶
- Apache Kafka: log-structured event streaming, replay, huge ecosystem.
- NATS: much lighter footprint, low latency, JetStream for persistence.
- Redpanda: Kafka API in C++.
- Apache Pulsar: multi-tenancy, geo-replication, tiered storage.
- LavinMQ (84codes): AMQP 0-9-1 compatible broker written in Crystal.
- AWS SQS/SNS, Azure Service Bus, Google Pub/Sub: managed cloud-native equivalents.
Migration and Lock-in¶
- AMQP 0-9-1 is spoken by a few other brokers, but exchange-to-exchange bindings, headers exchanges, DLX and quorum-queue semantics are RabbitMQ-specific; expect code changes when leaving.
- AMQP 1.0 (OASIS standard) is the more portable protocol; RabbitMQ 4.x uses its own v2 address format for exchanges and queues.
- Quorum queue arguments (
x-quorum-initial-group-size,x-delivery-limit, delayed retry) are RabbitMQ-only. - Streams can be read over AMQP, but the Stream protocol (5552) and super streams are RabbitMQ-specific.
- Federation and Shovel allow staged migration on or off RabbitMQ without dual writes; Blue-Green deployments handle major-version jumps.
Community Health¶
- Active development on
rabbitmq-serverby the Broadcom-employed core team; roughly two minor releases a year and monthly-ish patches. - Community discussion on GitHub Discussions, Discord, the rabbitmq-users Google group and IRC (Libera.Chat); the official contact page still lists all four as best-effort community channels (
src/pages/contact.js, checked 2026-09-28). - Security advisories are published on GitHub; a large batch landed May to September 2026.
- The 2024 support-policy change moved much user support to commercial channels; OAuth 2.0, TLS, LDAP and networking questions get minimal community attention by policy.
Topic Map¶
- How-to Guides: deployment, sizing, TLS, OAuth 2.0, permissions, troubleshooting, upgrading to 4.3, command recipes.
- Reference: release/support and Erlang matrices, upgrade paths, ports, queue type matrix, config defaults, queue arguments, removals by version, access control, hardening checklist, advisories.
- Explanation: process model, routing, queue types, Khepri, streams replication, federation/shovel, security model and threat model.
Related Topics¶
- Domain: Messaging and the messaging patterns comparison.
- Other domains: Kubernetes (operators), OpenStack (RabbitMQ as the message bus), AWS (Amazon MQ), Grafana (dashboards), Vault (RabbitMQ secrets engine).
Sources¶
- RabbitMQ Documentation and source in rabbitmq/rabbitmq-website.
- Release Information.
- Release notes: 4.3.0, 4.2.0, 4.1.0, 4.0.1.
- RabbitMQ 4.3 Highlights (blog, 2026-04-23).
- Metadata Store (Khepri), Khepri repository.
- Quorum Queues, Streams.
- Erlang Version Requirements, Upgrading.
- LICENSE, COMMUNITY_SUPPORT.md, Community support policy announcement.
- Security Advisories.
- RabbitMQ Cluster Operator.
- Amazon MQ: RabbitMQ 4.3 support.
- endoflife.date: RabbitMQ (cross-check for versions).
Questions¶
- With tens of thousands of queues, what is Khepri's practical memory and disk footprint compared with Mnesia, now that Mnesia is gone?
- How do RabbitMQ Streams (with SQL filters) compare with Kafka and Redpanda on identical hardware? No independent 2026 benchmark found.
- Does OAuth 2.0 token validation (JWKS, cached keys) add measurable connection-setup latency at ~10k connections per node?
- What is the operational cost of quorum queues at 100M+ message backlogs after the 4.3 memory optimisations?
- When will 4.4 ship, and will the community support window for 4.3 (listed as ending 2026-11-30) move with it?
- Which fixed versions apply to each of the ~90 advisories published May to September 2026 for open-source users on 4.2 or older?