Skip to content

Comment on Call me maybe: RabbitMQparent

Comments

Kafka is a lower-level system than RabbitMQ. It doesn't support:

* Topic routing. With RabbitMQ you can bind queue X to exchange Y with the routing keys "foo.bar." and "foo..baz". The queue will then get all messages matching those keys. That allows for very flexible pub-sub-style routing of messages; we use this extensively. As far as I can see, not really possible with Kafka without message duplication.

* Nacking model. Since Kafka queues are strictly linear, if a consumer fails to consume a message and wants to nack it and then process the remaining messages, it can't do so, since it has a single "read head". It would have to re-enqueue the message in that case.

* Prioritization. Not supported. You will have to create topics for different priorities and then consume those topics at a different rate depending on the priority.

* Message TTL.

And it's susceptible to network partitions, just like RabbitMQ.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.