Release v3.0.0-beta.3
Pre-releaseCacheOrchestrator 3.0.0-beta.3
Third v3 beta. This build closes major prerelease contract work before a stable freeze: Redis is split into leaf packages (AspNetCore.Redis, FusionCache.Redis) plus meta CacheOrchestrator.Redis, endpoint cache identity supports non-GET reads (with analyzer COIDENTITY001), and physical-key / stale / health / public-surface contracts are finalized. Documentation and the playground multi-instance labs are updated to match.
v3 remains a full redesign relative to 1.x / 2.x. Cache entries from beta.2 are not reused after the physical-key format change — allow natural refill or invalidate after upgrade.
Changelog
Added
- Redis leaf packages:
CacheOrchestrator.AspNetCore.Redis(AddRedisOutputCacheBackend) andCacheOrchestrator.FusionCache.Redis(AddRedisFusionCacheBackend), with support packageCacheOrchestrator.Redis.Shared(transitive only). MetaCacheOrchestrator.Redis/AddRedisBackendstill registers both surfaces. - Endpoint cache identity for non-GET reads:
WithCacheIdentity/WithContentHashCacheIdentity,[CacheIdentity]/[ContentHashCacheIdentity], namedICacheIdentityContract+AddCacheIdentityContract<T>(),CacheIdentities.Url. - Roslyn analyzer
COIDENTITY001(duplicate HTTP method identity bindings), delivered through AspNetCore and transitively to meta-package consumers. - Reference doc cache-identity.md; Minimal
POST /echo; Sample POST identity playground. - Pack-time package validation and a packaged-analyzer consumer smoke in CI.
- Playground product store on SQLite; labs 03–05 share
/shared/playground.dbso product GET/PUT across instances matches a shared database. - Observability logging docs: event levels, hierarchical category table, appsettings fine-tuning examples.
Changed
- Public / runtime contracts finalized toward API freeze: unambiguous versioned physical-key format; explicit provider hit/miss/stale outcomes (including Fusion soft-timeout / background refresh); Output-Cache-only Null-provider health treated as supported; fail-fast validation of the effective default Data Cache instance.
- Reduced avoidable public implementation surface (orchestration / extensibility shapes, EF interceptor visibility, key-generator context).
- Both
net8.0andnet10.0aligned on FusionCache 2.6 / Microsoft.Extensions 10 for that stack. - Docs hub, guide, reference, package READMEs, and releasing notes updated for the Redis split, identity, and contracts. NuGet package Documentation sections unified (root README, docs index, repository).
- Root README NuGet table points at 3.0.0-beta.3, including the Redis leaf packages.
Fixed
- FusionCache
CacheKeyPrefixuses the effective FC namespace. - Sample lab Docker build after the Redis package split.
- Meta-package consumers receive the identity analyzer without duplicate execution.
- Stale reporting and default Data Cache instance validation gaps from the major-readiness pass.
Removed
- Monolithic Redis assembly that forced AspNetCore + Fusion for every Redis consumer.
- Avoidable public physical-key escape / implementation details that froze internal format without need.
Deprecated
- None
Security
- Stronger domain/key isolation via the unambiguous physical-key format.
Breaking changes (prerelease)
- Redis package layout: prefer meta
CacheOrchestrator.Redis/AddRedisBackendfor dual-surface DX; Fusion-only or OC-only hosts can take the matching leaf package. First nuget.org publish of the split must include Shared + both leaves + meta together. - Physical cache-key format changed — do not expect beta.2 L2 / Redis entries to hit after upgrade.
- Prerelease public extension contracts are tightened; further additive changes may still occur until stable 3.0.0.
Packages in this release
All library packages below use version 3.0.0-beta.3.
| Package | Role |
|---|---|
CacheOrchestrator |
Meta: AspNetCore + FusionCache |
CacheOrchestrator.Core |
HTTP-free core |
CacheOrchestrator.AspNetCore |
Output Cache, Client Cache, Admin API, identity |
CacheOrchestrator.FusionCache |
FusionCache Data Cache provider |
CacheOrchestrator.HybridCache |
HybridCache Data Cache provider |
CacheOrchestrator.Redis |
Meta Redis (OC store + Fusion L2 / backplane) |
CacheOrchestrator.AspNetCore.Redis |
Redis Output Cache store only |
CacheOrchestrator.FusionCache.Redis |
Redis Fusion L2 / backplane only |
CacheOrchestrator.HttpBus |
HTTP cluster bus |
CacheOrchestrator.EFCore.Invalidation |
EF Core SaveChanges invalidation |
CacheOrchestrator.Redis.Shared is published as transitive support — do not reference it directly.
Admin Console App: Docker / GHCR (ghcr.io/amarinsek/cacheorchestrator-admin-console), not a NuGet package (latest image tag is not applied on prereleases).
Install
Usual web app start:
dotnet add package CacheOrchestrator --version 3.0.0-beta.3Full set (same version):
dotnet add package CacheOrchestrator --version 3.0.0-beta.3
dotnet add package CacheOrchestrator.Core --version 3.0.0-beta.3
dotnet add package CacheOrchestrator.AspNetCore --version 3.0.0-beta.3
dotnet add package CacheOrchestrator.FusionCache --version 3.0.0-beta.3
dotnet add package CacheOrchestrator.HybridCache --version 3.0.0-beta.3
dotnet add package CacheOrchestrator.Redis --version 3.0.0-beta.3
dotnet add package CacheOrchestrator.AspNetCore.Redis --version 3.0.0-beta.3
dotnet add package CacheOrchestrator.FusionCache.Redis --version 3.0.0-beta.3
dotnet add package CacheOrchestrator.HttpBus --version 3.0.0-beta.3
dotnet add package CacheOrchestrator.EFCore.Invalidation --version 3.0.0-beta.3You may use --prerelease instead of an explicit --version when this is the latest prerelease on nuget.org. Composition: packages guide · README package list.