Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Redis too have an append only log at-least for backup and persistence. What’s the difference with rabbitmq?


RabbitMQ already had a queue - that's it's main feature. This adds something which is not a queue; it's an append-only log.

Queues let many writers put messages into a single topic. Then, many readers come to that topic, and pop messages off. Each message goes to just one reader. You could use this for background jobs. For example, if you were running YouTube, you might handle uploads this way: the uploaded videos are put into a queue, and workers process them to transcode them and make them playable on the website. You don't want the uploads to be processed more than once.

Append-only logs let many writers append messages onto a single topic. Then, many readers may replay the entire history of messages whenever they want. Each message may go to many readers, and may even go to the same reader multiple times if they want. You could use this to build a "message bus" where you want lots of things to happen after an action. For example, every time a user "likes" something on facebook, maybe we want to notify the content-producer, notify their friends, and update some recommendation algorithms - three different things that we want to do each time, and we don't want errors in one to block the others.


There is already a mechanism suitable for your Facebook example use-case, namely publishing to an exchange which will send the message to multiple queues.


Right. The big feature that append only logs allow is replay. I have never really seen the point, though - and I say this as a big Kafka user!


It looks like Rabbitmq stream semantics matches up better with Kafka. Redis’s stream is more lighter weight.




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

Search: