Cache Invalidation
Deciding when a cached value has stopped being correct — famously one of the hard problems.
Cache invalidation is the problem of knowing when a stored copy of a computed value is no longer valid. Phil Karlton's line — that the two hard things in computer science are cache invalidation and naming things — endures because both are about maintaining a correspondence that nothing enforces.
The available strategies are few. Time-based expiry is simple and always either too eager or too stale. Event-based invalidation is precise and requires every writer to know every cache. Content-based keys — a Fingerprint over the inputs — invalidate exactly when they should and require the inputs to be enumerable. Immutable, content-hashed asset filenames are the last strategy taken to its conclusion: nothing is ever invalidated because nothing is ever overwritten.
Caches also multiply invisibly. A single request may pass through a browser cache, a CDN, a framework's data cache, an application memo, and a database query cache — each with its own lifetime. A change that appears in one and not another produces the characteristic "it works on my machine, and also on yours, but not for anyone else" report.
The subtlest form is a cache whose scope is smaller than assumed: a value memoized per process behaves like a cache within one instance and like nothing at all across several. See Incremental Static Regeneration.
See also7
Fingerprint
A hash over everything that determined a result, used to detect when the result has gone stale.
Agents & Language Models12 connections
Determinism
The property that identical inputs produce identical outputs, and the foundation of caching and verification.
Systems & Tooling56 connections
Naming
Choosing identifiers so the code states its own meaning without commentary.
Method55 connections
Static Site Generation
Rendering every page to a file at build time, so serving is just handing over bytes.
Web Platform12 connections
Hash Function
A function mapping arbitrary input to a fixed-size digest, used for identity, integrity, and addressing.
Systems & Tooling20 connections
React Server Components
Components that execute only on the server and never ship their code to the browser.
Web Platform18 connections
Domain Name System
The distributed directory translating names to addresses, and the layer where propagation delays live.
Systems & Tooling16 connections
Related3
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from18
- Bloom FilterComputation & Algorithms
A probabilistic set membership structure that can say "definitely not present" but only "probably present."
- Change Data CaptureData & Content
Turning a database's own internal write log into a stream other systems can subscribe to, without touching the application.
- Consistent HashingComputation & Algorithms
A hashing scheme where adding or removing a node remaps only a small fraction of keys, not nearly all of them.
- Content Delivery NetworkNetworks & Distribution
A CDN answers requests from servers near the requester, trading a single origin for many cached edges.
- DeterminismSystems & Tooling
The property that identical inputs produce identical outputs, and the foundation of caching and verification.
- Domain Name SystemSystems & Tooling
The distributed directory translating names to addresses, and the layer where propagation delays live.
- ETagWeb Platform
An opaque fingerprint of a response's content that lets a client ask a server whether it's changed without re-downloading it.
- Eventual ConsistencyNetworks & Distribution
A guarantee that replicas converge given no further updates, without guaranteeing when.
- FingerprintAgents & Language Models
A hash over everything that determined a result, used to detect when the result has gone stale.
- Hash FunctionSystems & Tooling
A function mapping arbitrary input to a fixed-size digest, used for identity, integrity, and addressing.
- HTTP CachingWeb Platform
The set of headers that let a browser or intermediary reuse a previous response instead of re-fetching it.
- Incremental Static RegenerationWeb Platform
Serving a cached static page while regenerating it in the background after a chosen interval.
- JSON Web TokenWeb Platform
A signed, self-contained token that carries claims a server can verify without a database lookup.
- Least Recently Used CacheComputation & Algorithms
A fixed-capacity cache that evicts whichever entry has gone untouched the longest.
- Optimistic UIWeb Platform
Updating the UI as if a server request has already succeeded, before the server has actually responded.
- React Server ComponentsWeb Platform
Components that execute only on the server and never ship their code to the browser.
- Static Site GenerationWeb Platform
Rendering every page to a file at build time, so serving is just handing over bytes.
- Write-Behind CacheData & Content
A cache that acknowledges a write immediately and persists it to the real store later, trading durability for write latency.