RabbitMQ
Open SourceOne broker to queue them all.
Published 12 October 2026
Scores
Popularity4/5
A long-standing default message broker that most backend developers recognize by name, though developers who never build distributed backends rarely touch it.
Learning Curve3/5
Getting a single queue running from Docker takes minutes, but exchanges, bindings, acknowledgement modes, and the choice between queue types need real study before a production setup.
Flexibility5/5
Exchange-based routing, several queue types, multiple open protocols, and plugins let one broker serve work queues, pub/sub, request/reply, and replayable streams.
Performance4/5
Handles tens of thousands of messages per second per node with low latency, and quorum queues keep that throughput while replicating; dedicated streaming platforms go further on raw volume.
Portability5/5
Open source under the Mozilla Public License, speaks open protocols such as AMQP and MQTT, and runs anywhere from a laptop container to every major cloud's managed offering.
About RabbitMQ
RabbitMQ is an open-source message broker: a server that accepts messages from producers, stores them in queues, and delivers them to consumers, which acknowledge each message once it has been handled. It is the transport layer of a background-job setup, not the job library itself. Celery in Python, for example, can use RabbitMQ as its broker, and services in different languages can talk to each other through it directly.
Messages are published to exchanges, which route them to queues by name, by pattern, or to every bound queue at once. That routing makes RabbitMQ suited to work queues, fan-out of events to several services, and request/reply between services. Unacknowledged messages are redelivered, failed ones can be sent to a dead-letter queue, and consumers can be throttled so a slow worker never receives more than it can handle.
There are three queue types. Quorum queues replicate messages across cluster nodes with the Raft consensus algorithm and are the default for durable work; recent releases added strict priority levels and delayed retries to them. Classic queues remain for simple single-node use, and streams keep an append-only log that consumers can replay, covering some event-log use cases without a separate streaming platform.
The broker speaks AMQP 0-9-1, AMQP 1.0, MQTT, and STOMP, and has client libraries for nearly every language. It runs as a single Docker container for development and as a cluster in production, and is available as a managed service from CloudAMQP, Amazon MQ, and other providers. The core is released under the Mozilla Public License 2.0; Broadcom sells Tanzu RabbitMQ, a commercial edition with extra features and enterprise support.
Key Features
- Exchanges route messages by name, pattern, or fan-out to many queues
- Quorum queues replicate messages across nodes with Raft
- Consumer acknowledgements with redelivery and dead-letter queues
- Streams for replayable, append-only message logs
- AMQP 0-9-1, AMQP 1.0, MQTT, and STOMP protocol support
- Management UI and HTTP API for queues, connections, and rates
- Client libraries for Python, Node.js, Java, Go, .NET, and more
- Clustering and federation across nodes and data centres
Pros
- Mature and battle-tested, with almost two decades of production use
- Flexible routing covers work queues, pub/sub, and request/reply in one broker
- Delivery guarantees through acknowledgements, persistence, and replicated queues
- Language-neutral, so services in different stacks can share one broker
- The built-in management UI makes queues and consumers easy to inspect
Cons
- Another stateful server to run, monitor, and upgrade unless you pay for a managed service
- Exchanges, bindings, and queue types take time to learn compared with a Redis-backed queue
- Not built for very high-throughput event streaming, where Kafka fits better
- Clustering and network partitions need careful operation in production
RabbitMQ Pricing
Open Source- · Full broker under the Mozilla Public License 2.0
- · Self-hosted with Docker, packages, or Kubernetes
- · Community support through GitHub Discussions
- · Commercial edition from Broadcom
- · Extra features such as JMS queues and stream browsing
- · 24/7 enterprise support and extended lifecycle
- · Contact sales for pricing
Tech Stacks with RabbitMQ
Spring Boot API
ProjectProduction-ready Java REST API with Spring Boot and PostgreSQL (or MySQL and MariaDB), the standard enterprise stack for backend services.
Spring Boot + Angular
ProjectEnterprise full-stack Java: an Angular frontend consuming a Spring Boot REST API.
Tools Related to RabbitMQ
Integrates with RabbitMQ(3)
Spring Boot's spring-boot-starter-amqp auto-configures Spring AMQP for RabbitMQ, giving RabbitTemplate for sending and @RabbitListener methods for consuming messages.
NestJS microservices include a built-in RabbitMQ transport, so services exchange messages and events through RabbitMQ queues with NestJS message-pattern handlers.
Celery uses RabbitMQ as a broker through its built-in AMQP transport, so Python apps get task routing, acknowledgements, and redelivery from RabbitMQ queues without extra glue code.
Vendor
Broadcom
Website →Tags
Details
- Maintained
- Yes