Hacker News new | past | comments | ask | show | jobs | submit login

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.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: