Filed from the IronCache pre-implementation coverage audit (2026-06-13): no existing issue adequately owned this.
Why this is needed
A cache is long-lived by definition and several claims are explicitly steady-state: #43 promises bounded fragmentation with no online defragmenter needed, #51 promises a TTL timing wheel with lazy backstop and background reclamation, #21 promises a hard-capped tracking table. None is provable by short conformance or differential runs. This needs a multi-hour/multi-day soak under churn (heavy expiry, eviction, defrag, CSC tracking, replication backlog) asserting RSS converges, fragmentation stays bounded, and file descriptors/timers/tracked-key tables do not grow without bound, under a leak sanitizer or RSS-trend check. 'soak' appears only in #91 (advisor oscillation) and #99 (Jepsen cadence); no issue owns a single-node long-horizon memory-stability gate for the engine. Validates the steady-state claims that the engine's whole value proposition rests on.
Context
Relates to / partially overlaps #43. Part of the vision EPIC #1.
Why this is needed
A cache is long-lived by definition and several claims are explicitly steady-state: #43 promises bounded fragmentation with no online defragmenter needed, #51 promises a TTL timing wheel with lazy backstop and background reclamation, #21 promises a hard-capped tracking table. None is provable by short conformance or differential runs. This needs a multi-hour/multi-day soak under churn (heavy expiry, eviction, defrag, CSC tracking, replication backlog) asserting RSS converges, fragmentation stays bounded, and file descriptors/timers/tracked-key tables do not grow without bound, under a leak sanitizer or RSS-trend check. 'soak' appears only in #91 (advisor oscillation) and #99 (Jepsen cadence); no issue owns a single-node long-horizon memory-stability gate for the engine. Validates the steady-state claims that the engine's whole value proposition rests on.
Context
Relates to / partially overlaps #43. Part of the vision EPIC #1.