{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreicdb5arvgykn636t3662cvktbwhk3xqnjx42j5hoylrd4c3x7gqxu",
    "uri": "at://did:plc:5sgu76a53rz3n6unbykmovqy/app.bsky.feed.post/3mlpoh3mcauh2"
  },
  "description": "RabbitMQ is an open-source message broker that implements the AMQP protocol along with several others (MQTT, STOMP). Where Kafka is a log-oriented streaming platform, RabbitMQ is a flexible message router optimised for traditional work queues, RPC, and complex routing topologies.\n\n\nCore concepts\n\n * Producer. Publishes messages to an exchange.\n * Exchange. Routes messages to queues via bindings; types include direct, topic, fanout, headers.\n * Queue. A buffer that holds messages; consumers subsc",
  "path": "/engineering-glossary/rabbitmq-message-broker/",
  "publishedAt": "2026-05-02T00:00:00.000Z",
  "site": "https://sahilkapoor.com",
  "tags": [
    "Kafka",
    "Pub/Sub",
    "Event-Driven Architecture",
    "Microservices"
  ],
  "textContent": "**RabbitMQ** is an open-source message broker that implements the AMQP protocol along with several others (MQTT, STOMP). Where Kafka is a log-oriented streaming platform, RabbitMQ is a flexible message router optimised for traditional work queues, RPC, and complex routing topologies.\n\n## Core concepts\n\n  * **Producer.** Publishes messages to an **exchange**.\n  * **Exchange.** Routes messages to **queues** via bindings; types include direct, topic, fanout, headers.\n  * **Queue.** A buffer that holds messages; consumers subscribe and receive in FIFO order.\n  * **Binding.** A rule that connects an exchange to a queue, often with a routing key pattern.\n  * **Acknowledgement.** Consumers ack messages after processing; un-acked messages are redelivered after timeout.\n\n\n\n## Routing patterns\n\n  * **Direct.** Routing key must match exactly.\n  * **Topic.** Routing key matches a pattern with wildcards (`orders.*.created`).\n  * **Fanout.** Broadcast to every bound queue.\n  * **Headers.** Route by message header values rather than routing key.\n\n\n\n## RabbitMQ vs Kafka\n\n  * **RabbitMQ.** Lower latency, complex routing, traditional work queues, RPC patterns. Messages are removed after consumption.\n  * **Kafka.** Higher throughput, durable append-only log, replay, stream processing. Messages persist for a configured retention period.\n\n\n\nšŸ”—\n\n**Related Terms**\nKafka, Pub/Sub, Event-Driven Architecture, Microservices.",
  "title": "RabbitMQ",
  "updatedAt": "2026-05-13T19:14:13.864Z"
}