Jitter
Deliberate randomness added to timing — retries, cron schedules, cache TTLs — to break the synchronization that turns many well-behaved clients into an accidental DDoS.
What is jitter?
Jitter is intentional randomness injected into timing to desynchronize independent actors. Its purpose is counterintuitive until you’ve seen the failure: many clients each behaving perfectly correctly, but in unison, become a coordinated stampede. Jitter scatters their timing so the aggregate load smooths out. It’s a one-line fix for a class of outages that look mysterious — periodic traffic spikes with no obvious cause — because the cause is synchronization itself.
The three places it matters most
Retries: pure exponential backoff synchronizes clients — everyone who failed at T retries at T+1, T+3, T+7, hammering a recovering service in waves exactly as it tries to come back. AWS’s analysis endorsed full jitter (sleep a random amount between 0 and the backoff cap) as the best-behaved variant; it’s the one to copy. Cache expiry: identical TTLs on popular keys mean they all expire simultaneously, and every request stampedes the database at once (the thundering herd / cache stampede) — jittered TTLs (TTL ± random) spread the repopulation. Cron and scheduled jobs: a fleet whose instances all run a task at 00:00:00 creates a synchronized load spike and can self-DDoS shared dependencies — jittering start times across a window fixes it.
Why it’s easy to forget
Jitter’s absence is invisible in testing — a few clients never synchronize noticeably; the failure only emerges at scale, in production, as an intermittent spike nobody can reproduce. That’s what makes “add jitter” one of the highest-leverage, lowest-effort reliability habits: a few characters of randomness preventing a category of hard-to-diagnose incidents. The mental trigger: any time many actors do the same timed thing, jitter it.
What people get wrong
- Exponential backoff without jitter — the textbook half-solution that still stampedes on recovery.
- Uniform cache TTLs on hot keys, converting an expiry into a database outage.
- Fleet-wide cron at round times — synchronized jobs hammering shared services on the minute.
Primary source: AWS Architecture Blog — Exponential Backoff and Jitter
Historical figures and technical concepts for informational purposes only. Not technical, professional, legal, or financial advice. Sources: Official Documentation.