Live data from Hacker News

Redis vs. Kafka vs. RabbitMQ

blog.devgenius.io

11–20 of 44 posts

Re: Redis vs. Kafka vs. RabbitMQ

#11
Especially if you want one-to-many connections, exactly once delivery and push/ pull consumers, it is worth checking out nats [0, 1]. It is very performant. There are clients for Javascript, Python, Rust and Go [2]. (I am not affiliated with them)

[0] https://nats.io/ [1] https://github.com/nats-io/nats-server [2] https://nats.io/download/#nats-clients

Re: Redis vs. Kafka vs. RabbitMQ

#13

Especially if you want one-to-many connections, exactly once delivery and push/ pull consumers, it is worth checking out nats [0, 1]. It is very performant. There are clients for Javascript, Python, Rust and Go [2]. (I am not affiliated with them) [0] https://nats.io/ [1] https://github.com/nats-io/nats-server [2] https://nats.io/download/#nats-clients

that's just not true. NATS does have neither at-least-once nor exactly-once. NATS Jetstream has at-least-once, but it does not have flexible topics anymore like NATS. It's two completely different things.

Re: Redis vs. Kafka vs. RabbitMQ

#14

It's worth noting that there are several projects built on top of Redis pub-sub that add more functionality, such as BullMQ: https://github.com/taskforcesh/bullmq

We use Bull at $CURRJOB and it works great until there's an issue and for _some reason_ jobs stall. Getting into the nitty gritty to debug the Lua code was not a fun week. We moved onto RMQ for our needs on the next project and are looking at ways the replace Bull/Redis in the old project.

Re: Redis vs. Kafka vs. RabbitMQ

#15
Another key feature missing from the list is:

4. Redelivery

Are messages redelivered if there's a failure in the consumer? This is critical to many systems using older messaging platforms like MQ.

Re: Redis vs. Kafka vs. RabbitMQ

#16
post #13

Especially if you want one-to-many connections, exactly once delivery and push/ pull consumers, it is worth checking out nats [0, 1]. It is very performant. There are clients for Javascript, Python, Rust and Go [2]. (I am not affiliated with them) [0] https://nats.io/ [1] https://github.com/nats-io/nats-server [2] https://nats.io/download/#nats-clients

that's just not true. NATS does have neither at-least-once nor exactly-once. NATS Jetstream has at-least-once, but it does not have flexible topics anymore like NATS. It's two completely different things.

I was including NATS Jetstream, which has exactly-once message delivery [0].

[0] https://docs.nats.io/nats-concepts/jetstream#exactly-once-me...

Re: Redis vs. Kafka vs. RabbitMQ

#19

It's worth noting that there are several projects built on top of Redis pub-sub that add more functionality, such as BullMQ: https://github.com/taskforcesh/bullmq

We use Bull at $CURRJOB and it works great until there's an issue and for _some reason_ jobs stall. Getting into the nitty gritty to debug the Lua code was not a fun week. We moved onto RMQ for our needs on the next project and are looking at ways the replace Bull/Redis in the old project.

Exactly our experience. We had stalled jobs and lost jobs on both Bull and Kue.

We wrote a celery-like library for Node[0] and RMQ has been rock solid.

https://www.npmjs.com/package/peanar

Post reply on HN