RabbitMQ

RabbitMQ

Open Source

One broker to queue them all.

APIs & Infrastructure
Message Queues & Background Jobs

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
Open SourceFree
  • · Full broker under the Mozilla Public License 2.0
  • · Self-hosted with Docker, packages, or Kubernetes
  • · Community support through GitHub Discussions
Tanzu RabbitMQContact sales
  • · 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

Project

Production-ready Java REST API with Spring Boot and PostgreSQL (or MySQL and MariaDB), the standard enterprise stack for backend services.

Database:
Deploy on:
Authentication add-on:
Object Storage add-on:
Caching add-on:
Background Jobs add-on:
CI/CD add-on:
Containerization add-on:
Observability add-on:
Email add-on:
Payments add-on:

Spring Boot + Angular

Project

Enterprise full-stack Java: an Angular frontend consuming a Spring Boot REST API.

Database:
Deploy on:
Authentication add-on:
Object Storage add-on:
Background Jobs add-on:
CI/CD add-on:
Containerization add-on:
Observability add-on:
Email add-on:
Payments add-on:
Analytics add-on:

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

Tags

Open SourceSelf-hostableDocker CompatibleWeb DevelopmentWebEvent-driven

Details

Maintained
Yes