Distributed Caching & Invalidation

Architectural patterns for caching data across distributed/microservices systems — where caching lives (client library, sidecar, proxy, CDN edge), how it's invalidated (TTL, event-driven, write-through), and how it avoids stampedes and handles staleness during failures — trading strict freshness for load reduction and availability.

Also known as: entity cache, transparent proxy cache, proxy cache, cache stampede, thundering herd, single-flight, XFetch, dual TTL, event-driven invalidation, stale-while-revalidate

How authors use it

Oldest first (extraction date when no publication date is known).

AuthorTheir termTheir meaning
DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability
Leela Kumili · 2026-07-20
Entity CacheDoorDash's specific, named transparent-proxy caching platform built on Envoy and Valkey.
DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability
Leela Kumili · 2026-07-20
transparent proxy cacheA cache implemented as a proxy inside the service mesh that intercepts existing HTTP/gRPC calls, so services get caching without any code change or awareness that caching is happening.
DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability
Leela Kumili · 2026-07-20
dual TTLTwo separate expiry values per cached entry: a short one marking data as 'fresh,' and a longer one marking the outer bound past which even stale data won't be served — the gap between them is what's servable during an outage.
DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability
Leela Kumili · 2026-07-20
single-flightA lock-free mechanism ensuring that when multiple concurrent requests miss the cache for the same key, only one upstream request is made and the result is shared, rather than each request independently hitting the upstream.
DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability
Leela Kumili · 2026-07-20
XFetchAn algorithm that proactively refreshes hot cache entries some random amount of time before their actual expiry, spreading refresh load over time to avoid many requests simultaneously hitting an expired entry.

Documents (3)

Propositions touching this concept (7)

By publication month, oldest first (extraction month when no publication date is known).

2026-07

Open gaps (8)