{
"$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"
}