pattern

Exponential Backoff

Increasing the wait between retries geometrically, with random jitter, so that failures do not synchronise into a stampede.

retriesresiliencecongestion

A downstream service that has just fallen over is about to be hit by every client retrying at once. Fixed-interval retries make this worse: they keep the load constant when the service needs it to drop, and they align clients into waves.

Exponential backoff spreads retries out over time — 1s, 2s, 4s, 8s, capped. Jitter, a random offset on each wait, breaks the synchronisation between clients, and it is the part most often omitted and most necessary; without it a thousand clients backing off exponentially still retry in a thousand-request spike.

Backoff must be bounded by an overall deadline, not just an attempt count, or a retry chain across four services multiplies into a timeout budget nobody planned.