Is Kafka better than RabbitMQ?

I've used RabbitMQ and JMS for event based programming before. Now all I hear about is Kafka...can someone with experience tell me if Kafka is worth it or not?



Kafka is definitely better than RabbitMQ...this is not to say RabbitMQ doesn't have it's place in todays event based ecosystem (along with JMS and other alternatives to Kafka)...

WITH THAT SAID...Kafka is still the best event based messaging system for applications that need to scale and handle real time event processing with millions of records per minute


Kafka is better than RabbitMQ because of one simple concept...push vs pull

Push vs Pull:

Traditional message queues like RabbitMQ use a push based model meaning they push messages to a pool of competing consumers. While this is good for handling messages in parallel, it doesn't allow for a multiple subscriber model like Kafka. Also, you can't order messages because different consumers are competing to take a single message at a time..ordering can get messy with RabbitMQ end of story. Also with a push model the consumers are force fed messages regardless of their state...

Kafka implements a pull model where X number of consumer groups read from the same persisted log stream. This allows consumers to read messages based on their current state and doesn't "force feed" consumers. You also get multi subscriber with push as these X number of consumers can subscribe to the same feed.


YES..forget about RabbitMQ...mic drop


Kafka is better than RabbitMQ if you need things only Kafka can do. Remember that Kafka can function as a message bus like RabbitMQ but RabbitMQ cannot do Kafka specific things like scalable streaming etc.


Kafka is the future of event based communication and big data. It can do everything RabbitMQ can do and the reverse is certainly not true about RabbitMQ.

I am going to be bold and say this is true 100% of the time.