Hey, author here, feels really nice to be HN famous (as defined by your stuff being on front page without you posting it). AMA and feedback welcome I guess.
Wanted to write a book on this topic over the pandemic lockdown, but then I felt it could just be a post. Let me know if anyone thinks itβs worth a full book. Maybe more exploration and demos of the options, reference designs etc.
Really useful info at just the right level for me, and coincidentally at just the right time! Thanks!
One aspect I'm interested in is what happens when senders and receivers are mismatched in throughput, with the worst case being a too-fast producer causing queues to get "backed up". Do most of the tools you described have decent diagnostics/monitoring for this? Are there design-stage approaches to avoid this completely, even if demand varies (predictably or unpredictably)? Any light you could shed here, or in the post, would be appreciated.
Depends on the queue... I've seen SQS queues holding millions of messages, and think I've heard of a billion plus somewhere - not sure other systems handle that kind of pressure.
In terms of monitoring, yeah, most systems will offer that... On AWS for example we setup cloudwatch alarms that post in our team chat / email when the number of messages waiting in certain queues reaches N, and we go see what's up. AWS also has autoscaling options with cloudwatch alarms, so some consumer services are configured to automatically add more capacity when there are more then N messages in the queue.
this is known as backpressure in the biz. your queues eventually have to start returning errors as they get backed up, and those errors need to be reflected in the producers and ultimately fed up to the end user for feedback. no big deal
Wanted to write a book on this topic over the pandemic lockdown, but then I felt it could just be a post. Let me know if anyone thinks itβs worth a full book. Maybe more exploration and demos of the options, reference designs etc.