Handle delayed invalidation without evicting a newer cache revision unnecessarily
An old invalidation arrives after a fresh fill and deletes valid data, triggering avoidable refresh work across instances.
- Focused work estimate
- 3h 30m + prerequisites
- Priority in the scenario
- Medium
- Engineering practice
- Event ordering · Cache invalidation
Estimated field mix
- Distributed systems100%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
A fictional wholesale portal caches product availability descriptions across several API instances. Delayed invalidations and slow refreshes bring back old content after edits.
Setup prerequisites
- Create two local cache clients and a synthetic authoritative product store.
- Use a fake clock and controllable read/write barriers.
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
- ACACHE-101 · Define cache keys from every product-view authority input
- ACACHE-102 · Specify what stale product data the portal may display
- ACACHE-103 · Record authoritative product revision with each cached projection
- ACACHE-104 · Commit product changes with a durable invalidation fact
- ACACHE-105 · Prevent a slow cache fill from overwriting a newer product revision
Acceptance criteria
- Compare invalidation revision with cached source revision.
- Evict or mark stale only entries covered by the event.
- Treat missing or incompatible envelopes as safe misses.
Implementation constraints
- Keep invalidation decisions atomic with cache state inspection.
Verification to include
- Deliver revision 7 invalidation against cached revision 8 and retain it.
- Deliver matching/newer invalidation and enforce the declared stale behavior.
Deliverables
- Revision-aware invalidation and ordering tests
Rollout and recovery
Enable after envelope rollout; fall back to conservative eviction on unknown formats.
Value of the work
For the engineer: Practice cache consistency, version guards and recoverable invalidation.
For the team: Review fast derived reads without losing authoritative state or tenant isolation.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.