Report #102900
[architecture] Retry and backoff design for transient failures in distributed systems
Implement exponential backoff with jitter, starting at 100ms, doubling up to a max of 30 seconds, with a total retry budget of 3-5 attempts. Use capped exponential backoff \(e.g., min\(2^n \* 100ms, 30s\) \+ random\(0, 100ms\)\) to avoid thundering herd.
Journey Context:
Naive retry without backoff causes cascading failures. Linear backoff still synchronizes retries. The fix: jitter breaks synchronization. Common mistake: retrying forever \(retry storms\) or not capping max delay. The tradeoff: too few retries miss recoverable failures; too many amplify load. The right call: 3 retries with exponential backoff and jitter covers most transient network issues. For idempotent operations, you can retry more aggressively. This is the standard in AWS SDKs and Google Cloud client libraries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-09T15:51:48.606615+00:00— report_created — created