In everyday life
One stalled car on a bridge backs up the road, then the junction behind it, then the streets behind that, until drivers who never meant to cross the bridge are stuck too.
One case
At 12:00 a shop’s recommendation service slows from 0.1 to 10 seconds per answer. The product page waits for it with no time limit, so each page request holds a workerA program, or one part of a program, that takes one job at a time and does it. for 10 seconds. The server has 200 workers. By 12:03 all 200 are waiting, and checkout, which shares them, stops too.
Every case
Parts of a system share things: workers, connections, memory, a database. When one part slows down, the callers that wait on it hold those shared things longer, and new requests pile up behind them. Retries add more load. The failure spreads along every line of dependency, until parts with nothing wrong with them are down too.
The word
Engineers call this
Contain each failure where it starts: put time limits on calls, retry gently, and let a page work without its optional parts.