The cache is not wrong. It is exactly as stale as you asked.
317 experiments: space practice at 10-20% of your retention target.
- The track
- Writes code
- The rep
- About thirty seconds
- Published
- September 2, 2026
The Exhibit
A meta-analysis of 317 experiments (839 effects) found a clean rule for spacing: the gap between sessions should be about 10 to 20 percent of the retention interval you want. One-month retention wants a few days between reps; one-year wants weeks. Massing it all into one sitting collapses the gain. The study.
Cross-domain, so it is the pattern that transfers, not a literal calendar. It maps onto the thing you already know from cramming for an exam and forgetting it by the weekend: without spacing, the memory has a short TTL.
The study
Comprehension Debt
Comprehension debt: the gap between what gets shipped and what the team can still reason about.
The same logic governs the systems you onboarded onto a year ago and have not touched since. Recall decays on a curve, and the only thing that resets it is pulling the knowledge back out on a schedule. "I learned this once" is a cache with an expiry you never set on purpose.
The idea
The Rep
Thirty seconds:
A slow page gets a cache with a 60-minute expiry. Fast now. A week later, users sometimes see data up to an hour stale. Is the cache broken?
The answer
No, it is doing exactly what you specified. A TTL cache trades freshness for speed, and 60 minutes of staleness is the price you set. The bug is not the cache, it is the absence of a decision about which data can tolerate that window. Fixes depend on the field: shorten the TTL for volatile data, or move to explicit invalidation (evict or update the entry on write) when stale reads are unacceptable, or cache the expensive computation but not the user-visible balance. "Is the cache wrong?" is the wrong question. "What staleness did we agree to, and where is that unacceptable?" is the right one. Caching is easy; invalidation is the part that needs a human deciding.
About thirty seconds
