I built the clients → API server → queue → backend pipeline you’ve seen a hundred times, pointed a ten-second load spike at it, and watched it spend the next minute finishing a quarter-million requests that nobody was waiting for anymore — with its throughput graph perfectly, reassuringly flat.
TL;DR: under overload a queue’s throughput (work finished per second) can hold rock-steady while its goodput (work finished while a client still wants the answer) collapses to zero — and a client retry loop keeps it there long after the spike is gone. The culprit is the queue discipline. Changing FIFO to drop work the backend can’t finish in time took goodput from 19% back to 100% and shrank the peak backlog 100×, in about thirty lines of code.
...