Notes on backpressure

Every system has a limit. The only question is whether it tells you when it reaches one.

An unbounded queue is the most common way of declining to answer that question. It converts a fast, legible failure — rejected requests — into a slow, illegible one: latency that climbs until something upstream times out and the cause is four services away.

Bounded queues are unpleasant to configure because they force a decision nobody wants to make in advance. That is the entire value of them.