Queues Don't Fix Overload (2014)
- Infrastructure
- Programming
- Developer Tools
The post’s core claim is simple. A queue can absorb short-lived mismatch between producers and consumers, but it cannot fix sustained overload. If work arrives faster than it can be completed on average, the backlog only gets bigger. The queue delays the pain, adds latency, and often hides the real bottleneck until recovery gets expensive. People largely agreed with that framing and sharpened it. The useful distinction that emerged is “volatility versus mismatch.” Queues are good at smoothing bursty arrivals over short windows. They are bad at handling demand spikes that last longer than your latency budget, like traffic surges tied to news or promotions. Several comments recast queues as decouplers, closer to manufacturing buffers or async FIFOs between different clock domains. That framing landed better than “queues are bad,” because it explains why they remain valuable for isolating systems, moving non-urgent work off the request path, and scaling readers and workers independently. The catch is that decoupling weakens feedback. Once producers no longer feel downstream pain immediately, you need explicit backpressure and tight queue limits or you just hide trouble. A recurring practical point was that small bounded buffers are healthier than giant ones. Large buffers increase work in progress, mask sync bugs and deadlocks, and can turn a small incident into a long recovery cascade across services. The comments also pushed the article on one nuance: for low-urgency tasks like analytics, counters, or background updates, delaying work by minutes or even hours is often perfectly acceptable. In those cases, queues are not pretending to fix overload. They are trading freshness for simpler, more scalable request handling. The consensus was not anti-queue. It was anti-magical thinking about what queues can actually buy you.
Treat queues as a buffering and isolation tool, not as capacity planning. Put explicit backpressure, bounded queues, and drop or defer policies in place before load arrives, or you will turn a visible overload into a slower, harder-to-recover failure.
- ferd.ca
- Discuss on HN