~/tools/rabbitmq
RabbitMQ
tool

RabbitMQ

RabbitMQ is an open source message broker that routes messages between your applications and services — a self-hosted alternative to Amazon SQS and Azure Service Bus, with support for AMQP, MQTT, and STOMP across nearly any language.

What is RabbitMQ?

RabbitMQ is an open source message broker that lets applications and services communicate by passing messages through queues, instead of calling each other directly. A producer publishes a message, RabbitMQ holds and routes it, and a consumer picks it up when it’s ready — which decouples your systems and smooths out spikes in load.

It’s written in Erlang, has been in production for over a decade, and speaks several open messaging protocols so almost any stack can connect to it.

What is RabbitMQ best for?

RabbitMQ is best for teams that need reliable asynchronous messaging between microservices, background task queues, and workloads that depend on flexible routing. It shines when one message has to reach the right consumers based on rules — work queues, fan-out notifications, RPC, and event-driven pipelines — without locking you into a single cloud provider’s managed queue.

What can RabbitMQ do?

  • Route messages through exchanges — direct, topic, fanout, and headers — with flexible bindings between queues
  • Speak multiple protocols: AMQP 1.0 and 0-9-1, MQTT 3.1/3.1.1/5.0, STOMP, plus its own high-throughput Stream protocol
  • Guarantee delivery with consumer acknowledgements, publisher confirms, and durable, persistent queues
  • Replicate across a cluster with quorum queues and streams for high availability
  • Connect from nearly any language — official and community clients for Python, Java, .NET, Go, Node.js, Ruby, and more
  • Manage and monitor through a web UI, a CLI, and an HTTP API, and extend the broker with plugins
  • Deploy on Kubernetes with the official RabbitMQ Cluster Operator

Is RabbitMQ free?

Yes — RabbitMQ is fully open source under the Mozilla Public License 2.0 and free to self-host, so you only pay for the servers it runs on. Broadcom (VMware) sells a commercial edition, Tanzu RabbitMQ, that adds 24/7 enterprise support, a longer support lifecycle, and compliance features, but the open source server is complete and production-ready on its own.

Where does RabbitMQ fall short?

  • It isn’t built for the same extreme-throughput event streaming and long-term log replay that Kafka targets. RabbitMQ Streams narrows the gap, but very high-volume streaming pipelines often still favour Kafka.
  • The Erlang runtime is rock-solid but unfamiliar to most teams, so diagnosing deep broker issues can require knowledge you may not have in-house.

What does RabbitMQ replace?

RabbitMQ is a self-hosted alternative to managed cloud queues like Amazon SQS and Azure Service Bus. It does the same decouple-and-queue job, but you run it on your own infrastructure — avoiding per-request billing and the lock-in that comes with a provider-specific messaging service.

FAQ

Is RabbitMQ open source? Yes. RabbitMQ is licensed under the Mozilla Public License 2.0, an OSI-approved open source license. The code is public, and you’re free to use, modify, and self-host it without paying.

Can I self-host RabbitMQ for free? Yes. Self-hosting is free; you only pay for the infrastructure it runs on. Tanzu RabbitMQ from Broadcom is the paid, commercially supported edition for enterprises that want a vendor behind it.

RabbitMQ vs Kafka — which should I use? RabbitMQ is a flexible message broker built for routing and task queues; Kafka is built for high-throughput event streaming and log retention. Choose RabbitMQ for complex routing and per-message workflows, and Kafka when you need to stream and re-read huge volumes of events.

What do I need to run RabbitMQ? A server with the Erlang runtime — or just the official Docker image or Kubernetes operator, which bundle it. For high availability, run a multi-node cluster with quorum queues.