Cascading failures

One slow component makes its callers wait, they run out of threads and slow down their own callers, until the whole system is down. Timeouts, circuit breakers, bulkheads and load shedding contain it.

Where it shows up in real systems

  • Circuit breaker

    Place it between a caller and a fragile dependency. When errors exceed the threshold, the circuit opens: calls return a fallback immediately instead of waiting for timeouts, which keeps the caller's threads free and gives the dependency time to recover.

    In production: Resilience4j, Polly (.NET), Envoy outlier detection, Istio, Hystrix (legacy)

See it break, then fix it

Build an architecture, send it a day of traffic and outages, and learn why it holds or fails. Free to start.