Thundering herd
Section titled “Thundering herd”A thundering herd occurs when many actors become ready at the same time and hit the same constrained resource.
Common triggers include cache expiry, service recovery, scheduled work, reconnect loops, and release of blocked workers.
flowchart LR
Trigger[Shared trigger] --> A[Client A]
Trigger --> B[Client B]
Trigger --> C[Client C]
Trigger --> D[Client D]
A --> Dependency[Shared dependency]
B --> Dependency
C --> Dependency
D --> Dependency
Symptoms
Section titled “Symptoms”Load arrives as a sharp spike. Latency rises, queues grow, timeouts increase, and the dependency can fail again immediately after recovery.
Detection
Section titled “Detection”Correlate request volume, cache misses, retries, queue depth, and dependency saturation around the same timestamp.
Mitigation
Section titled “Mitigation”Spread work over time with jitter, request coalescing, staggered expiry, bounded concurrency, admission control, or single-flight behavior for shared cache fills.
Trade-offs
Section titled “Trade-offs”Smoothing load can add latency for some callers. Coalescing requires care when requests are not truly equivalent.
Sources
Section titled “Sources”- Google. Site Reliability Engineering, “Addressing Cascading Failures.”