Kafka vs. Rabbitmq
2 min readJun 13, 2021
Kafka
- high-throughput ingestion, fault-tolerant
- it is a log of persistent/durable events appended each time into a topic, with little overhead
- events are persistent and replayed until a retention period has passed
- can hold a large amount of durable data
- topics are splitter into partitions by a partition key, where the insertion order is kept
- a single event can be consumed by different consumer groups
- a consumer group can consume partitions in parallel.
- each consumer group has its own offset in each partition.
- consumers pull messages
Rabbitmq
- general-purpose message queues
- fast when the topics/queues are empty as it keeps messages in memory (have a look at lazy queues)
- to scale out and keep the queues not large, simply add more consumers
- when a message is acknowledged/consumed by a client, it gets removed
- flexibly route messages: direct, topic, fanout, and header exchanges
- support message priority
- messages are pushed to consumers