Menu

Retries without a retry storm: timeouts, backoff, jitter and circuit breakers
📰

Retries without a retry storm: timeouts, backoff, jitter and circuit breakers

DEV Community: microservices·Ayush Soni·2 days ago
#nQeVx1a7
#devtomicroservices#devto#dev#retry#retries
Reading 0:00
15s threshold

Retries are the cheapest reliability feature there is: a request fails because of a dropped packet or a pod restart, you try again, it works. Most transient failures are gone in milliseconds.

They're also one of the most common ways a small incident becomes a large one. A database hiccups for a minute. Every caller retries. The callers of those callers retry too. The database — the one thing that needed less traffic to recover — now receives several times its normal load, and the one-minute blip becomes a long outage. This pattern is often called a retry storm .

Here are the four tools that keep retries on your side.

The arithmetic of retry amplification

Imagine a request that goes through three services before it reaches a database, and each service retries a failed call 3 times in total (1 attempt + 2 retries).

Every layer that retries multiplies the load on the layers below. Explore the interactive diagram

When the database is failing, one user request becomes 3 × 3 × 3 = 27 database calls .…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.