Skip to main content

Status and roadmap

The features below are implemented; planned work and validation gaps are listed separately. Each linked guide lists its server and protocol requirements.

The next supported major targets 2.0.0 to avoid the occupied NuGet 1.x line. The pipeline supports manually published release candidates before the stable cut; ordinary pushes only validate packages.

Six settling surfaces now require an explicit experimental API opt-in: VectorData, semantic chat caching, hedged reads, hash import sessions, deferred raw commands, and StackExchange.Redis compatibility. These remain outside the 2.0 compatibility promise.

Public interface compatibility and the post-2.0 extension policy are described in Interface compatibility.

Available now​

  • Polygon geo searches on Valkey 9.0+, including search/store, batch and transaction APIs, and client-side vertex validation.

  • Opt-in maximum connection lifetime with independent jitter, replacement-before-drain multiplexing, and idle-only dedicated recycling.

The previous release-gate, API, onboarding, and feature epics are complete (#1567, #1576, #1585, and #1594). Their implemented features are described in the guides below; the remaining pre-release work is tracked separately.

Connections, routing, and recovery​

Commands and coordination​

Caching, integration, and testing​

  • ASP.NET Core rate limiting with named policies, user/IP/API-key partitions, shared Redis budgets, and Retry-After rejection headers.
  • Typed near-cache maps with read-through loaders, write-through or batched write-behind persistence, preload, shared invalidation, and hash field expiry.
  • Semantic chat response caching for Microsoft.Extensions.AI.
  • Redis conversation history, chat middleware, and Microsoft Agent Framework history providers.
  • VectorData hash and JSON collections with AOT-friendly mapping, KNN, filters, and hybrid search on Redis 8.4+. The guide lists unsupported features.
  • RESP3 server-assisted client-side caching with OPTIN, OPTOUT, BCAST/prefix tracking, and optional NOLOOP.
  • Cache-aside factories with relative or absolute server expiry and optional concurrent-miss coalescing.
  • Typed serialization, custom serializers, and value compression codecs.
  • Opt-in client-side payload encryption for cache values, near-cache maps, job arguments, and stream payloads, using ASP.NET Core Data Protection.
  • Dependency injection, distributed caching and HybridCache with cross-instance tag invalidation, and OpenTelemetry, including command trace filters and a Prometheus and Redis dashboard setup.
  • Explicit pipeline and transaction hooks for admission rejection, auditing, and completion timing. Logical command hooks cover ordinary converted dispatch, single-key and multi-key cache reads, partial hash reads, cache-aside factories, distributed-cache operations, interpolated and non-interpolated Execute APIs, function execution and mutations, script execution, dedicated blocking converted replies, ordinary cursor pages, streaming upload/download results, explicit subscription setup/teardown, typed TimeSeries results including chunked TS.MADD partial-progress failures, specialized server/pinned/fan-out operations, resumable cluster scan pages, stream appends including automatic IDMP retries and capability fallback, explicit batch/transaction members (including WAIT/WAITAOF), WATCH setup, immediate hash imports, import-session acquisition, explicit health-probe rounds, managed locks, semaphores, tracked coordination leases and countdown latch operations (including notification waits), and typed Search results (including hybrid capability discovery and cursor-page recovery). Typed RedisJSON owners include serialization, conversion and owned cleanup. Typed Probabilistic owners include argument preparation, conversion and owned cleanup, with raw Info and Top-K List transfers retaining their own boundaries. Rate limiters and Redlock groups admit their logical operations before internal work. The completed policy audit documents custom facet cancellation, decorator/result boundaries, housekeeping exclusions and recorded benchmark evidence. Hooks describe supported logical operations; they are not a universal wire-command or arbitrary-wrapper authorization policy.
  • Configuration binding and named options, with a generated builder covering every client option and validation at host startup.
  • An in-memory test server with controlled server time, KEYS/SCAN enumeration, and command expectations with argument matching, reply overrides, and invocation verification; Redis/Valkey container fixtures, and a test sample.
  • A focused Garnet, Dragonfly and KeyDB compatibility suite runs weekly or on request, with pinned server versions and explicit incompatibility skips. Its feature matrix describes the assessed scope rather than full Redis parity.
  • Samples: .NET Aspire, ASP.NET Core, Cluster, and Sentinel, with a topology smoke workflow.

Compatibility adapters​

  • A coordination migration guide maps RedLock.net and DistributedLock.Redis to Respire, including quorum, renewal, timeout, and fencing differences.

  • An opt-in StackExchange.Redis migration analyzer and code fix converts supported static async IDatabase methods to native Respire calls, with semantic diagnostics, compilation checks, and Fix All. Connection setup and unsupported shapes require manual migration.

  • The StackExchange.Redis migration adapter (Respire.StackExchangeCompat) covers a documented subset of IConnectionMultiplexer, IDatabase, IBatch, ITransaction, IServer, and ISubscriber, plus value conversion and a raw-command bridge. It passes the upstream Microsoft distributed cache and DataProtection tests and Hangfire acceptance. It is not full StackExchange.Redis parity.

  • Microsoft's SignalR Redis backplane does not run on the adapter, and support is not planned. Use Respire.SignalR.

  • The Orleans 10.2.2 acceptance suite runs the Orleans Redis clustering, grain storage, and reminder providers on the adapter. Real silo/client scenarios cover activation, persistent state, reminder delivery, graceful restart, shared and provider-owned shutdown, stable three-primary Cluster routing, completed Cluster slot moves, coordinated replica promotion, abrupt silo death, socket reconnect, and Sentinel primary promotion on .NET 8/10 with RESP2/RESP3. Membership inserts, updates, stale-version rejection and heartbeats during ASK migration are covered; unplanned Cluster failover and multi-host partitions remain unvalidated.

Retries and write outcomes​

  • A bounded standalone, Sentinel and Cluster reconnect backlog waits for replacement command connections by default, including typed/raw commands, fire-and-forget, batches and unwatched transactions. It preserves FIFO admission, original deadlines and cancellation, with BacklogCapacity and a FailFast opt-out. Accepted commands are not replayed by the backlog. Sentinel primary recovery uses a router-owned FIFO that survives generation replacement and validates the elected primary before dispatch. Cluster queues are independent per slot and reselect owners and read policies during recovery. Standalone and Sentinel replica reads have a shared router FIFO that reapplies the read policy, membership and ROLE validation after recovery, including procedures, streams and hedged reads.
  • Opt-in command retry policies through RespireOptions.RetryPolicy. Each command has a retry category that decides whether it may be resent after it might have run. Retries cover immediate commands, raw/script/function requests with a declared category, failover groups, whole batches and unwatched transactions, and watched transaction helpers. An enabled policy adds retry ownership work and can allocate on healthy commands. The retry-owner lifetime audit maps cancellation, replacement, late-reply and pool-generation coverage, including synchronized public-operation tests and quiescent reference checks. It does not establish complete heap reclamation or exhaust every scheduler/topology combination.
  • The transport write evidence log records how Respire tells an unsent command from one that may have reached Redis.

The 14 October healthy-path audit completes the evidence disposition in #1693. The original zero-allocation/no-measurable-cost goal remains unmet. Completed owner comparisons report 0 B/op for Default/Disabled integer reads, positive Enabled allocations including tracked Cluster cache producers, and mixed latency/control drift. Transport's current disposition also remains negative. The guides define per-path targets, known causes and the evidence needed before further optimization; closed #862, #1214 and #1499 are historical predecessors, not open blockers. These historical results do not certify current main or promise zero overhead.

A notification-based field cache is not offered: subkey notifications cannot meet the cache consistency contract. See the field-level caching decision.

Planned work​

The current pre-release epics target 2.0.0, as recorded in the release naming decision. They track remaining work, not release commitments.

Validation and performance follow-ups​

  • Published StackExchange.Redis 3.4.5 and 4.0.127-alpha comparisons: Linux measurements and durable raw evidence cover ordinary operations, pipelines, pub/sub, and local caches. The server-operation latency investigation dispositions all 21 original ties and both controls, retaining 16 ties in the repeat and documenting why the profile supports no production optimization. The pipelined control changes from Faster to Same; concurrent GET remains Faster. Pub/sub profiling found no safe latency improvement supported by the collected evidence: the latest runs tie both versions, and the earlier 4.0 slowdown remains valid for its original rig. Publication does not establish a universal performance advantage.
  • Completed healthy-path retry and transport performance audit: enabled retries allocate and add work even when commands succeed. The audit documents remaining acceptance gaps and targets for future optimization; its closure does not establish universal performance acceptance.
  • Completed retry-owner lifetime audit (#1694) maps cancellation, disposal, replacement, late-reply, and reuse coverage. Its bounded tests and quiescent reference checks do not prove complete heap reclamation or every scheduler/topology combination.
  • Orleans topology assessment: lifecycle, provider-owned shutdown, completed Cluster slot moves, coordinated replica promotion, Sentinel failover and abrupt silo death have acceptance coverage. Membership writes during ASK migration are covered; multi-host partitions need an independent-network test harness.
  • Cluster availability-zone replica fallback timeout: investigate the failure under concurrent test load and validate recovery.

See Coming from StackExchange.Redis for a feature comparison and the introduction for the design bets. Report issues on GitHub.