I played with most message queues and I go with RabbitMQ in production. Mostly because it has been very reliable for years in production at a previous company, and doesn’t require babysitting. Its recent versions also has new features that make it is a descent alternative to Kafka if you don’t need to scale to the moon. And the logo is a rabbit.
Ask HN: What's your go-to message queue in 2025?
91–99 of 99 posts
Re: Ask HN: What's your go-to message queue in 2025?
#92I played with most message queues and I go with RabbitMQ in production. Mostly because it has been very reliable for years in production at a previous company, and doesn’t require babysitting. Its recent versions also has new features that make it is a descent alternative to Kafka if you don’t need to scale to the moon. And the logo is a rabbit.
Just used it as a Celery (job queue) backend. How is it a Kafka alternative?
Re: Ask HN: What's your go-to message queue in 2025?
#93Postgres. Doing ~ 70k messages/second average. Nothing huge but don’t need anything dedicated yet.
Re: Ask HN: What's your go-to message queue in 2025?
#94I didn't have anything but bad experiences with RabbitMQ, maybe I cannot "cook" it, but it would always go split-brain, or last issue I had, a part of clients connected to certain clustered nodes just stopped receiving messages. Cluster restart helped, but all logs and all metrics were green and clean. I try to avoid it if I can.
ZeroMQ is more like a building block for your applications. If you need something very special, it could be a good fit, but for a typical EDA-ish bus architecture Redis or Kafka/Redpanda are both very good.
Re: Ask HN: What's your go-to message queue in 2025?
#95For large applications in a service-oriented architecture, I leverage Kafka 100% of the time. With Confluent Cloud and Amazon MSK, infra is relatively trivial to maintain. There's really no reason to use anything else for this. For smaller projects of "job queues," I tend to use Amazon SQS or RabbitMQ. But just for clarity, Kafka is not really a message queue -- it's a persistent structured log that can be used as a…
> This means you can really only have one client per topic, because once the message is consumed, it's no longer available to anyone else. It depends on your use case (or maybe what you mean by "client"). If I just have a bunch of messages that need to be processed by "some" client, then having the message disappear once a client has processed it is exactly what you want.
Re: Ask HN: What's your go-to message queue in 2025?
#96For large applications in a service-oriented architecture, I leverage Kafka 100% of the time. With Confluent Cloud and Amazon MSK, infra is relatively trivial to maintain. There's really no reason to use anything else for this. For smaller projects of "job queues," I tend to use Amazon SQS or RabbitMQ. But just for clarity, Kafka is not really a message queue -- it's a persistent structured log that can be used as a…
We build applications very differently. SQS queues with 1000s of clients have been a go to for me for over a decade. And the opposite as well — 1000s of queues (one per client device, they’re free). Zero maintenance, zero cost when unused. Absurd scalability.
One thing to consider is whether you _want_ your producers to be aware of the clients or not. If you use SQS, then your producer needs to be aware of where it's sending the message. In event-driven architecture, ideally producers don't care who's listening. They just broadcast a message: "Hey, this thing just happened." And anyone who wants to subscribe can subscribe. The analogy is a radio tower -- the radio broadcaster has no idea who's listening, but thousands and thousands of people can tune in and listen.
Contrast to making a phone call, where you have to know who it is that you're dialing and you can only talk to one person at a time.
There are pros and cons to both, but there's tremendous value in large applications for making the producer responsible for producing, but not having to worry about who is consuming. Particularly in organizations with large teams where coordinating that kind of thing can be a big pain.
But you're absolutely right: queues/topics are basically free, and you can have as many as you want! I've certainly done it the SQS way that you describe many times!
As I mentioned, there are many paths to victory. Mine works really well for me, and it sounds like yours works really well for you. That's fantastic :)
Re: Ask HN: What's your go-to message queue in 2025?
#97For my extremely specialized case, I use a SQLite database as a message queue. It absolutely wouldn't scale, but it doesn't need to. It works extremely well for what I need it to do.
I would join in asking for more details. I have an idea of a project where even MySql/Maria is too much of admin burden.
You can use `PRAGMA data_version` on a dedicated thread to watch for changes and notify other waiters via a condition variable. It's not the nicest solution, because it's just a loop around a query, but it gets the job done.
A req-rep pattern can be done by doing a `INSERT ... RETURNING id` and having the the other side re-push into the same or a different message queue with an annotation referring to that id. Alternatively, you could have a table with a req, rep, and status column to coordinate it all.
It's far from everything you'd need from a complete, robust message broker, but for small single or multi-process message queue with a max of a few dozen readers and writers, it gets the job done nicely. In a single process, you can even replace the data_version loop thread with `sqlite3_commit_hook` on writers to notify readers that something has changed via the condition_variable.
Re: Ask HN: What's your go-to message queue in 2025?
#98Re: Ask HN: What's your go-to message queue in 2025?
#99Earlier quoted context omitted.
Datadog too. i often wonder how come more companies dont pick cute mascots. gives a logo, makes everyone have warm fuzzies immediately, creates pun opportunities. inb4 "oh but you wont be taken seriously" well... datadog.
Hugging face clearly shares the same philosophy