Live data from Hacker News

Ask HN: Why do message queue-based architectures seem less popular now?

news.ycombinator.com

161–170 of 376 posts

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#161

I like a lot of the answers, but something else I'd add: lots of "popular" architectures from the late 00s and early 2010s have fallen by the wayside because people realized "You're not Google. Your company will never be Google." That is, there was a big desire around that time period to "build it how the big successful companies built it." But since then, a lot of us have realized that complexity isn't necessary for…

We also have much much bigger single machines available for reasonable money. So a lot of reasonable workloads can fit in one machine now that used to require a small cluster

It's kind of mind boggling just how powerful mundane desktop computers have gotten, let alone server hardware.

Think about it: That 20 core CPU (eg: i7 14700K) you can buy for just a couple hundred dollars today would have been supercomputer hardware costing tens or hundreds of thousands of dollars just a decade ago.

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#162
Going to give the unpopular answer. Queues, Streams and Pub/Sub are poorly understood concepts by most engineers. They don't know when they need them, don't know how to use them properly and choose to use them for the wrong things. I still work with all of the above (SQS/SNS/RabbitMQ/Kafka/Google Pub/Sub).

I work at a company that only hires the best and brightest engineers from the top 3-4 schools in North America and for almost every engineer here this is their first job.

My engineers have done crazy things like:

- Try to queue up tens of thousands of 100mb messages in RabbitMQ instantaneously and wonder why it blows up.

- Send significantly oversized messages in RabbitMQ in general despite all of the warnings saying not to do this

- Start new projects in 2024 on the latest RabbitMQ version and try to use classic queues

- Creating quorum queues without replication policies or doing literally anything to make them HA.

- Expose clusters on the internet with the admin user being guest/guest.

- The most senior architect in the org declared a new architecture pattern, held an organization-wide meeting and demo to extol the new virtues/pattern of ... sticking messages into a queue and then creating a backchannel so that a second consumer could process those queued messages on demand, out of order (and making it no longer a queue). And nobody except me said "why are you putting messages that you need to process out of order into a queue?"...and the 'pattern' caught on!

- Use Kafka as a basic message queue

- Send data from a central datacenter to globally distributed datacenters with a global lock on the object and all operations on it until each target DC confirms it has received the updated object. Insist that this process is asynchronous, because the data was sent with AJAX requests.

As it turns out, people don't really need to do all that great of a job and we still get by. So tools get misused, overused and underused.

In the places where it's being used well, you probably just don't hear about it.

Edit: I forgot to list something significant. There's over 30 microservices in our org to every 1 engineer. Please kill me. I would literally rather Kurt Cobain myself than work at another organization that has thousands of microservices in a gigantic monorepo.

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#163

We often use RabbitMQ like middle-ware, and it is boring because it has proven very reliable. Most people that deal with Distributed systems is hard to get right, and there are a few key areas one needs to design right... If I was to give some guidance, than these tips should help: 1. user UUID to allow separable concurrent transactions with credential caching 2. global UTC time backed by GPS/RTC/NTP 3. client side a…

Tip #7 is my favorite. ;-p

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#164

It's still around, and it's still going strong in the embedded space. Examples: * PX4 * Ardupilot * Betaflight * DroneCAN * Cyphal * ROS/ROS2 * Klipper * GNU Radio Also would like to mention that all of the most popular RTOSes implement queues as a very common way of communicating between processes.

As does Apple's Darwin kernel, when used as intended. :-)

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#165

We often use RabbitMQ like middle-ware, and it is boring because it has proven very reliable. Most people that deal with Distributed systems is hard to get right, and there are a few key areas one needs to design right... If I was to give some guidance, than these tips should help: 1. user UUID to allow separable concurrent transactions with credential caching 2. global UTC time backed by GPS/RTC/NTP 3. client side a…

Tip #7 is my favorite. ;-p

#7 is extremely important...

If it was free it would be worthless... lol =3

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#166

Earlier quoted context omitted.

Kubernetes brings more than just being Google. In a way it’s also an ecosystem.

That‘s nice, but the question is if you (i.e. your company) needs this ecosystem.

Genuine question: say you have 3-4 services and a bunch of databases that make up your product, what's the alternative to plemping them all into K8s according to you?

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#167
post #110

We have a new project (~ 6 years now) where we implemented a queue with RabbitMQ to temporarily store business events before they are stored in a database for reporting later. It's awesome! It absorbs the peaks, smoothes them out, acts as a buffer for when the database is down for upgrades, and I think over all these years we only had one small issue with it. 10/10 would recommend.

looks like you could have had a blue/green DB setup which would give you one less system to maintain and other benefits that a simple queue don't provide. also, what do you do when the queue is down?

I don't think the queue has ever been down in 6 years. It certainly never was a breaking point.

As for the database, yes, we could do blue/green I guess, but it's a big database and it's more cost effective to rely on the queue.

To be honest, I'm not even sure blue/green would be an option given our constraints.

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#168

Going to give the unpopular answer. Queues, Streams and Pub/Sub are poorly understood concepts by most engineers. They don't know when they need them, don't know how to use them properly and choose to use them for the wrong things. I still work with all of the above (SQS/SNS/RabbitMQ/Kafka/Google Pub/Sub). I work at a company that only hires the best and brightest engineers from the top 3-4 schools in North America a…

That doesn’t sound like hiring the only „brightest“.

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#169

Going to give the unpopular answer. Queues, Streams and Pub/Sub are poorly understood concepts by most engineers. They don't know when they need them, don't know how to use them properly and choose to use them for the wrong things. I still work with all of the above (SQS/SNS/RabbitMQ/Kafka/Google Pub/Sub). I work at a company that only hires the best and brightest engineers from the top 3-4 schools in North America a…

That doesn’t sound like hiring the only „brightest“.

But we only hire from MIT, Waterloo, CMU, etc!

No, truly, I feel you. The Waterloo kids are literally cut from a different cloth though I'll take one of them to ten of anyone else. I feel really guilty about grabbing young grads with all that potential and putting them through this...

Grads aren't expected to know anything. It's all the early ex-google hiring that fucked us.

Re: Ask HN: Why do message queue-based architectures seem less popular now?

#170
I am under impression people are still actively using MQs but it’s just become a commodity and not as exciting as it was. I think two major cases - you need to do something asynchronous and in specific order. Simple example from past project: in a workflow/process management app (task manager on steroids) there’s a group of tasks (branch) that can be completed by multiple people in any order. When all tasks are done we have to mark the whole branch as completed and move workflow further. Many instances of the workflow are running at same time. Logic is much simpler to implement when you process all task completions within same workflow instance in order, but from different instances in parallel. It’s also much easier to provide close to realtime experience to users - when user clicks on a checkbox task is shown completed instantly as well as other effects- next task becomes active, branch shown as completed, whole workflow is shown as completed etc.
Post reply on HN