Skip to content

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, rabbitmqadmin v2, 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-server by 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.

Sources

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?