CacheOrchestrator 3.0.0-beta.1

This is a prerelease version of CacheOrchestrator.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package CacheOrchestrator --version 3.0.0-beta.1
                    
NuGet\Install-Package CacheOrchestrator -Version 3.0.0-beta.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CacheOrchestrator" Version="3.0.0-beta.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CacheOrchestrator" Version="3.0.0-beta.1" />
                    
Directory.Packages.props
<PackageReference Include="CacheOrchestrator" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CacheOrchestrator --version 3.0.0-beta.1
                    
#r "nuget: CacheOrchestrator, 3.0.0-beta.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CacheOrchestrator@3.0.0-beta.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CacheOrchestrator&version=3.0.0-beta.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=CacheOrchestrator&version=3.0.0-beta.1&prerelease
                    
Install as a Cake Tool

CacheOrchestrator

CacheOrchestrator unifies the configuration of Output Cache, data cache, and client Cache-Control within a single domain model. It ensures seamless coordination and cache invalidation across all layers while significantly reducing boilerplate code.

This meta package is the usual starting point for web apps: it includes AspNetCore + FusionCache.

Targets .NET 8 and .NET 10.

Install

dotnet add package CacheOrchestrator

Config

{
  "Cache": {
    "OutputCache": { "Provider": "InMemory" },
    "DataCacheInstances": { "default": { "Provider": "InMemory" } },
    "Domains": {
      "catalog": {
        "Version": "1",
        "DataCache": { "TtlSeconds": 300 },
        "OutputCache": { "TtlSeconds": 60 },
        "ClientCache": { "Cacheability": "Public", "TtlSeconds": 30 }
      }
    }
  }
}

Example

builder.Services.AddCacheOrchestrator(builder.Configuration);

var app = builder.Build();
app.UseCacheOrchestrator();

app.MapGet("/api/products/{id}", async (HttpContext http, string id, IDomainDataCache cache) =>
{
    var data = await cache.GetOrSetAsync(http, ct => LoadProductAsync(id, ct));
    return Results.Json(data);
})
.CacheOutputWithDomain("catalog");

More layouts (Redis, Hybrid, libraries, EF): packages.md · composition how-to.

Package Role
CacheOrchestrator.Core Http-free domains and ICacheOrchestrator (libraries / workers)
CacheOrchestrator.AspNetCore Output Cache, Client Cache, Admin API, IDomainDataCache
CacheOrchestrator.FusionCache FusionCache data-cache provider (included in this meta package)
CacheOrchestrator.HybridCache Microsoft HybridCache data-cache provider
CacheOrchestrator.Redis Redis Output Cache store / Fusion L2 / backplane
CacheOrchestrator.HttpBus Multi-instance invalidate / Version / settings bus
CacheOrchestrator.EFCore.Invalidation Invalidate after EF SaveChanges

Documentation

License

MIT — LICENSE.md

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on CacheOrchestrator:

Package Downloads
CacheOrchestrator.Redis

Redis backends for CacheOrchestrator: Output Cache store, FusionCache L2 + backplane, and health probes.

CacheOrchestrator.EFCore.Invalidation

EF Core SaveChanges hook for CacheOrchestrator: map CLR types to (domain, entityKind) and purge entity tags after a successful save.

CacheOrchestrator.Bus

HTTP cluster command bus for CacheOrchestrator: invalidate, Version, and TTL commands across instances (Static or ServiceDiscovery membership).

GitHub repositories

This package is not used by any popular GitHub repositories.

CacheOrchestrator 3.0.0-beta.1

Initial beta release of the completely redesigned v3 architecture, built around a new modular package ecosystem. This release separates the HTTP-free core orchestration from the ASP.NET host, introduces foundational support for both FusionCache and HybridCache providers, and is published for early integration testing and community feedback.

(Note for existing users: v3 is a full redesign and does not preserve API compatibility with 1.x or 2.x. Please see the Changelog before upgrading.)

Full notes: https://github.com/amarinsek/CacheOrchestrator/blob/main/CHANGELOG.md