Request coalescing in a shared cache does not solve thundering herd, it just reduces propagation to backend services. Your cache is still subject to a thundering herd, and may be unable to keep up.
The only way to solve thundering herd - which is that a load of all requests arrive within a short timespan - is to distribute requests over larger timespan.
Reducing your herd size by having fewer requests does not solve thundering herd, but may make it bearable.
Comments
Jitter is one way to solve it. Request coalescing is another.
It depends on the request type. Is it cacheable? Do you require a per-client side effect? ...
Request coalescing in a shared cache does not solve thundering herd, it just reduces propagation to backend services. Your cache is still subject to a thundering herd, and may be unable to keep up.
The only way to solve thundering herd - which is that a load of all requests arrive within a short timespan - is to distribute requests over larger timespan.
Reducing your herd size by having fewer requests does not solve thundering herd, but may make it bearable.