Skip to content

Releases: cirreum/Cirreum.Cache.Distributed

Release v1.0.9

Choose a tag to compare

@hyspdrt hyspdrt released this 27 Jul 20:56

Full Changelog: v1.0.8...v1.0.9

Release v1.0.8

Choose a tag to compare

@hyspdrt hyspdrt released this 25 Jul 00:20

Full Changelog: v1.0.7...v1.0.8

Release v1.0.7

Choose a tag to compare

@hyspdrt hyspdrt released this 24 Jul 23:26

Full Changelog: v1.0.6...v1.0.7

Release v1.0.6

Choose a tag to compare

@hyspdrt hyspdrt released this 20 Jul 16:27

Full Changelog: v1.0.5...v1.0.6

Release v1.0.5

Choose a tag to compare

@hyspdrt hyspdrt released this 19 Jul 15:59

Full Changelog: v1.0.4...v1.0.5

Release v1.0.4

Choose a tag to compare

@hyspdrt hyspdrt released this 07 Jul 21:15

Full Changelog: v1.0.3...v1.0.4

Release v1.0.3

Choose a tag to compare

@hyspdrt hyspdrt released this 05 Jul 23:56

Full Changelog: v1.0.2...v1.0.3

Release v1.0.2

Choose a tag to compare

@hyspdrt hyspdrt released this 04 Jul 22:31

Full Changelog: v1.0.1...v1.0.2

Release v1.0.1

Choose a tag to compare

@hyspdrt hyspdrt released this 04 Jul 19:45

Full Changelog: v1.0.0...v1.0.1

Release v1.0.0

Choose a tag to compare

@hyspdrt hyspdrt released this 03 Jul 17:02

Cirreum.Cache.Distributed 1.0.0 — the IDistributedCache provider

The IDistributedCache-backed implementation of Cirreum's ICacheService. Successor to the
published Cirreum.QueryCache.Distributed package, re-homed to a new id alongside the Cirreum
1.0 foundation reset and the code-first caching model.

Migrating from Cirreum.QueryCache.Distributed? See MIGRATION-v1.md.

Why this release exists

The caching foundation went code-first in Cirreum.Contracts/Cirreum.Domain 1.1.1: a provider
is chosen by the registration call, not an appsettings switch. This package is the distributed
provider under that model, and it moves to the Cirreum.Cache.* id family that replaces
Cirreum.QueryCache.*.

What's new

AddDistributedCacheService()

services.AddCirreumCaching();
services.AddStackExchangeRedisCache(o => o.Configuration = "...");   // any IDistributedCache
services.AddDistributedCacheService();                              // selects this provider

Registers DistributedCacheService as the active ICacheService via the foundation's code-first
AddCacheService(factory) helper — the registration call itself selects the provider (no
CacheProvider enum, no Cirreum:Cache:Provider appsettings switch). Fails fast at
registration
if no IDistributedCache has been registered.

Behavior

  • Entries with no configured expiration are bounded by a default 5-minute TTL rather than
    persisting indefinitely (IDistributedCache has no built-in default).
  • A payload that fails to deserialize (corrupt bytes or schema drift) is evicted and recomputed
    instead of failing every read until it expires.
  • Cached Result / Result<T> values round-trip correctly via the Cirreum.Result System.Text.Json
    converter (ADR-0024).
  • Tag-based eviction is unsupported by IDistributedCache: RemoveByTagAsync / RemoveByTagsAsync
    throw NotSupportedException (use Cirreum.Cache.Hybrid for tag invalidation).

Compatibility

  • Successor to a published package — a package-id + code-first migration, not a new capability.
    See MIGRATION-v1.md.
  • Depends on Cirreum.Domain 1.1.1 (code-first cache abstractions: ICacheService /
    CacheExpirationPolicy).

See also

  • Cirreum.Cache.Hybrid — the HybridCache-backed provider (L1+L2, stampede protection, tag invalidation)