Skip to content

Instantly share code, notes, and snippets.

@rahul619anand
Last active August 22, 2024 18:56
Show Gist options
  • Save rahul619anand/6e3c83497e06d901c3e2209ac42eec9c to your computer and use it in GitHub Desktop.
Save rahul619anand/6e3c83497e06d901c3e2209ac42eec9c to your computer and use it in GitHub Desktop.
Kafka vs RabbitMQ
RabbitMQ
* Written in Erlang
* Scaling strategies - is mostly vertical
* Supports topics and queues
* if you want to have high persistence guarantees, RabbitMQ ensures replication across the cluster and on disk on message send.
* Reliable message broker as we get acknowledgement (AMQP based)
* Use RabbitMQ if you have messages (20k+/sec) that need to be routed in complex ways to consumers, you want per-message delivery guarantees, you don’t care about ordered delivery, you need HA at the cluster-node level now, and/or you need 24×7 paid support in addition to forums/IRC.
* RabbitMQ is good for “slow” and unreliable consumers
Apache Kafka
* Scala
* Scaling strategies - is built from the ground up with horizontal scaling in mind
* Supports topics only
* Kafka offers the best performance and scalability.
* High-throughput distributed messaging system
* Use Kafka if you have a fire hose of events (100k+/sec) you need delivered in partitioned order ‘at least once’ with a mix of online and batch consumers, you want to be able to re-read messages, you can deal with current limitations around node-level HA (or can use trunk code), and/or you don’t mind supporting incubator-level software yourself via forums/IRC.
* Kafka is good for “fast” and reliable consumers
References
http://yurisubach.com/2016/05/19/kafka-or-rabbitmq/
https://www.quora.com/What-are-the-differences-between-Apache-Kafka-and-RabbitMQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment