Skip to content
API reference

TypeScript is the reference implementation. Go and Rust are experimental.

DialCache documentation ​

DialCache wraps application reads with explicit enablement, layered storage, and runtime policy. These guides explain its model and feature behavior; the API reference collects each port's native options and contracts. Choose TypeScript, Go, Rust or Python in the site selector: shared behavior stays on the same page, while examples and integration notes follow your selection.

Learn the model ​

  1. Getting started: run a reader inside an enabled scope.
  2. How DialCache works: follow a read through layers and shared work.
  3. Keys and identity: define a cached result and its invalidation group.
  4. Configuration and rollout: combine defaults and overrides, choose key cohorts, and understand changes to a running service.

Feature guides ​

FeatureWhat it explains
Targeted invalidationEntity watermarks, in-flight races, and reuse boundaries
Stale-on-errorFresh and recovery ages, eligible errors, and retained snapshots
Shadow validationCache coherence through sampling, confirmation, and optional fills
Coalescing and livenessShared work, caller deadlines, and in-flight state

Reference and integrations ​

ReferenceWhat it covers
APIMethods, options, defaults, validation, errors, and exports
Redis and ValkeyClient setup, serialization, compression, adapter contracts, and wire protocol
ObservabilityPrometheus and Datadog setup, metric semantics, and custom adapters
UpgradingProtocol cutovers, retention, serializers, and metric migrations
Maintainer guideValidation, documentation, benchmarks, and releases

Language guides ​

PortNative integration details
TypeScriptNode.js async context, serializers, optional client adapters
GoContext propagation, generic operations, duration and overlay types
RustScope guards, Arc<T> values, runtime and feature flags
PythonAsync decorators, contextvars scopes, native values and application-owned Redis clients

Behavior catalogue connects shared contracts to the existing formal cases. Documentation authoring explains how to change shared prose, tested native examples and generated references together.

Find an answer ​

QuestionStart here
Why is my loader still running?Enabled scopes, layer policy, and miss reasons
Why did changing a TTL leave an old value in cache?Policy changes and existing entries
Why can I still see a value after invalidation?Reuse boundaries
Why are callers sharing a timeout or result?What followers inherit
What can still wait after the source deadline?Application-owned budgets
Why is shadow validation doing no work?Shadow eligibility

The published site and generated native API references follow main, which may be ahead of a released npm package, Go module or Rust crate. For an installed version, use its release notes and matching release tag. See the Rust guide for registry releases and checkout dependencies. Python is currently unpublished and installed from a checkout as described in the Python guide.

Project overview · npm package · Source code