Immediate retries vs exponential backoff

Immediate retries send a failed request again at once, so 1,000 callers/s add a second wave to a service that tries to recover. Exponential backoff waits longer after each failure. After a 2 s link cut, immediate retries leave 15 percent of requests failed. Backoff leaves none.

Play the level

A retry stormArrow keys change the retries. Tap to turn jitter on or off.

3 retries per call · no jitter · peak 6.0× normal load

1,000 requests/s reach a one-core service. The link fails from 0:02 to 0:04. At least 99.9 percent of requests must succeed, with p99 below 5 s. Immediate retries give p99 7,936 ms and backoff 4,032 ms.

Case 1
Measure Goal 5 retries with no wait Backoff from 750 ms, with jitter
Error rate under 0.1% 15% Fail 0% Pass
p99 latency under 5 s 7.9 s Fail 4 s Pass
Monthly cost 4 USD/mo 4 USD/mo
HTTP/2UsersAPI server1 vCPU · 1 GB
HTTP/2UsersAPI server1 vCPU · 1 GB
5 retries with no wait: misses a goal
HTTP/2UsersAPI server1 vCPU · 1 GB
HTTP/2UsersAPI server1 vCPU · 1 GB
Backoff from 750 ms, with jitter: meets the goals