Kafka vs. Rabbitmq

Mustafa Atik
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

--

--

Mustafa Atik

You can find my notes I take when learning something new or reading, watching. So, they only help me to refresh and remember what I’ve consumed.