Skip to content

Track DialCache deep-review follow-up work #47

Description

@lan17

Priority

META — Tracking — umbrella only; not implementation work.

Current baseline

This tracker began with the deep API, performance, scalability, and correctness review of main@2bda04d1443a75a71cbbc41365c4424554936a37.

It is now reconciled against:

Forty implementation issues are tracked: 21 resolved and 19 open. Every P0 is resolved. The open backlog contains 4 P1, 8 P2, and 7 P3 issues after downgrading the speculative definition-handle work in #21 from P2 to P3.

Confirmed behavior and architecture decisions are recorded in their individual issues. Open decisions still require maintainer approval before implementation.

Recommended order

  1. Resolve the remaining public-API question in https://github.com/lan17/DialCache/pull/68—whether to remove or retain deprecated MissingKeyConfigError—then finish Overlay runtime cache configuration on documented defaults #23. The PR is otherwise ready for review at 4c5d516fc71e529723bbde9cdbd84786b3b4fc8d, with passing CI https://github.com/lan17/DialCache/actions/runs/29710409148.
  2. Approve and implement the narrow outage fix in Prevent Redis outages from amplifying latency, source load, and logs #38: after a Redis read exception, run fallback but skip the second Redis write.
  3. Resolve Align runtime support after Node 20 EOL #34 by selecting the maintained Node runtime floor. The current recommendation is Node 22+.
  4. Measure the workload gates in Characterize and guard watermark cardinality and Redis Cluster hot slots #42: distinct tracked-ID rate, watermark lifetime, and hottest-ID QPS.
  5. Confirm the narrow correctness contracts in Recover safely from corrupt tracked watermark state #31 and Validate TTL and invalidation duration arithmetic consistently #33.
  6. Build the comparable harness in Add a repeatable performance and scale benchmark suite #35 before the measured hot-path work in Establish a local-hit performance budget and remove avoidable hot-path work #43.
  7. Resolve zero-capacity semantics in Make zero local capacity consistent and evaluate byte-aware limits #40.
  8. Implement the approved additive getOrLoad() API in Add an ergonomic getOrLoad() API for inline cache blocks #71 when API ergonomics becomes the focus.
  9. Keep P3 work demand-driven.

P0 — Critical — all resolved

P1 — High

P2 — Medium

P3 — Low / demand-driven

Open decisions to batch-confirm

Dependency notes

Completion standard

  • Focused unit/integration/type coverage for the actual failure mode.
  • Breaking changes include migration and mixed-version/rollback notes.
  • Performance work reports reproducible before/after evidence.
  • No open design is implemented until its decision is explicitly approved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions