Skip to main content

RabbitMQ

RabbitMQ is an open-source message broker that implements the Advanced Message Queuing Protocol (AMQP) for reliable, interoperable messaging between distributed applications and services (message-oriented middleware).

  • AMQP-based message broker supporting multiple messaging protocols (message-oriented middleware)
  • Supports queuing, routing, publish/subscribe, and request/reply messaging patterns (application integration)
  • Pluggable authentication, authorization, and Transport Layer Security (TLS) support for secure connectivity (security and access control)
  • Clustering, high availability queues, and quorum queues for fault-tolerant deployments (resilience and availability)
  • Management UI, Hypertext Transfer Protocol (HTTP) Application Programming Interface (API), and Command-Line Interface (CLI) tooling for monitoring and administration (operations and observability)

More About RabbitMQ

RabbitMQ is an open-source message broker (message-oriented middleware) that enables asynchronous communication between distributed systems using the Advanced Message Queuing Protocol (AMQP) and additional supported protocols. It is maintained as part of the VMware by Broadcom portfolio and is used to decouple producers and consumers of messages, buffer workloads, and coordinate events across heterogeneous applications and services.

At its core, RabbitMQ implements message routing between producers, exchanges, queues, and consumers (application integration). Exchanges route messages to queues based on routing keys and bindings, supporting direct, topic, fanout, and headers-based routing. This design supports messaging patterns such as work queues, publish/subscribe, and request/reply, as well as delayed processing and load distribution across multiple consumers.

RabbitMQ supports AMQP 0-9-1 as its primary protocol (messaging protocol) and also provides interoperability for other protocols through plugins, including Message Queuing Telemetry Transport (MQTT) and STOMP (protocol interoperability). This enables integration with a range of client libraries and platforms, allowing applications written in different languages and frameworks to communicate through a common broker. The project provides officially supported client libraries for several programming languages and documents interoperability patterns for others.

For security and access control (security), RabbitMQ offers pluggable authentication backends, virtual hosts for multi-tenancy, user-based permissions, and support for TLS to encrypt connections between clients and the broker. Operators can configure fine-grained access policies and apply network and transport-level protections aligned with enterprise security practices.

In enterprise environments, RabbitMQ is deployed for workload decoupling, event distribution, background job processing, and integration between legacy systems and cloud-native services (enterprise integration). It supports clustering across multiple nodes and provides features such as mirrored and quorum queues for high availability and data safety (resilience and availability). These capabilities allow operators to design for node failures, perform rolling upgrades, and scale consumers horizontally.

Operationally, RabbitMQ includes a web-based management console, an HTTP API, and command-line tools (operations and observability). These interfaces expose metrics, connection and channel status, queue depth, message rates, and configuration management functions. The plugin system extends the broker with features such as federation, shovels for cross-broker message transfer, and protocol adapters (extensibility).

Within an enterprise architecture taxonomy, RabbitMQ fits into the categories of message-oriented middleware, enterprise messaging bus, and application integration infrastructure. It is used as a foundational component in service-based and microservices architectures, event-driven systems, and hybrid deployments spanning on-premises (on-prem) and cloud environments.