System design · interactive
Retries, backoff and circuit breakers
Service B goes down from tick 4 to 9. Service A calls it 10 times a tick. Retrying feels safe, but every retry is more load on a service that's already struggling. Find the setup that lets B recover.
Users
wait ~80 ms
Service A
no breaker
Service B
10/20 calls
Calls reaching B per tick
dashed = capacity 20 · shaded = B down
Tick 0: B handles 10 calls fine.
B never recovers in this run.
tick 0 of 231 Never wait forever. A 1000 ms timeout turns a hung dependency into a fast, visible failure.
10 ok · 0 failed this tick
2 3 4 5
In production
Tools and technologies
Timeouts, retries with backoff and circuit breakers are built into service meshes and resilience libraries.
Not tied to one language — use these names when you search docs or design a system.
- EnvoySoftware
Retry policies, timeouts and outlier detection between services.
GitHub ↗ - IstioPlatform
Service mesh that configures Envoy's retries and circuit breaking.
GitHub ↗ - Resilience4jSoftware
Circuit breaker, retry and bulkhead for JVM services.
GitHub ↗ - CircuitBreaker (Martin Fowler)Standard
The classic write-up of the pattern and its three states.
Official site ↗