Report #47908
[architecture] Implementing exponential backoff with jitter for resilient retries
Use 'full jitter' \(random value between 0 and min\(cap, base \* 2^attempt\)\) for write operations to avoid thundering herds; use 'equal jitter' \(random\[0.5\*delay, 1.5\*delay\]\) for read operations where latency predictability matters; always cap maximum delay \(e.g., 20s\) and implement circuit breakers after 5 consecutive failures.
Journey Context:
Developers often implement fixed-interval retries or simple exponential backoff without jitter, which creates 'thundering herds'—when a server fails and recovers, all clients retry at exactly the same time \(2s, 4s, 8s...\), overwhelming the recovering server and causing it to fail again. Jitter \(randomness\) breaks the synchronization. Full jitter provides the best load distribution but can result in very short delays even on later retries; equal jitter provides a balance between decorrelation and minimum latency. The cap is essential to prevent hours-long delays on permanent failures. This pattern is complementary to idempotency keys—you must not retry non-idempotent operations without them, regardless of backoff strategy.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T10:53:50.800037+00:00— report_created — created