Software Engineering
What is exponential backoff?
It's a rule for retrying something that failed: wait longer after every failure, instead of trying again right away or waiting the same fixed amount every time.
Wait longer, every time
Each failed try earns a wait roughly double the last one. A little patience after the first failure; a lot of patience if the failures keep coming.
Why doubling alone isn't enough
If everyone who failed together computes the same wait, everyone retries together — and the pile-up that caused the failure just happens again, a little later.
Why this is called the "thundering herd"
It usually shows up right after an outage: a service goes down, thousands of clients fail at the same instant, and if they all back off on the same schedule, they all come back at the same instant too — knocking the recovering service straight back over.
The fix: jitter
Add a random wobble to each wait, still growing on average, and the exact same three retries land at three different moments instead of one pile-up.
It doesn't wait forever
The wait doubles until it hits a ceiling — then every later retry waits that same capped amount, so a run of bad luck never turns into an hours-long silence.
Sources: Marc Brooker, "Exponential Backoff and Jitter," AWS Architecture Blog, 2015. "Retry strategy," Google Cloud Storage documentation. Longer, more technical version: Reference: Exponential Backoff.