Skip to main content
İki paket birlikte hibrit cache stratejisini oluşturur:
  • BuildingBlocks.CachingIHybridRequestCache soyutlaması; Microsoft.Extensions.Caching.Hybrid (HybridCache) üzerine stampede protection + tag-based invalidation + multi-instance broadcast hook ekler.
  • BuildingBlocks.Caching.Redis — L2 backend’i; IDistributedCache implementasyonları ve distributed lock sağlar.
Üst seviye cache mimarisi (L1/L2 stratejisi, invalidation, multi-instance) Cache Mimarisi grubunda anlatılır. Bu sayfa paket arayüzlerine odaklanır.

IHybridRequestCache

HybridCache’i doğrudan inject etmek yerine bu arayüz kullanılır — domain-friendly imza ve multi-instance broadcast hook için.

CacheOptions

Cache bölümüne bind edilir. Yalnızca spec/DB query cache’ini (CachedRepository) etkiler; auth/token cache’leri (UserContext, JWKS, PKCE) HybridCache’i doğrudan kullanır ve bu bayraklardan etkilenmez. IRemoteTagBroadcaster çok-instance tag broadcast kontratıdır; varsayılan NoopRemoteTagBroadcaster (tek-node). Multi-pod’da Application katmanı bunu MassTransit/Redis pub-sub implementasyonuyla değiştirir.

DI kaydı — AddCache

Kayıt sırası kritiktir. HybridCache, L2 backend’i (IDistributedCache, Redis) önceden register edilmiş olmasını bekler. Doğru sıra:
AddCache HybridCache’i kendisi register etmezProgram.cs AddHybridCache(...)’ı AddRedisCache’ten sonra çağırır. Sıra bozulursa HybridCache L2’yi göremez ve L1-only çalışır.

BuildingBlocks.Caching.Redis

L2 backend’i ve distributed lock sağlayan paket. DistributedLockOptions: RedisDistributedLocking (aç/kapa), Expiry (lock TTL — Expiry/2’de auto-renew).

DI kaydı — AddRedisCache

Kullanım

İlgili

Hibrit cache

L1/L2 katman davranışı ve stampede protection.

Invalidation

Tag-based eviction ve domain event entegrasyonu.

Multi-instance

Broadcast ile node’lar arası L1 senkronu.

Specification

Spec üzerinde EnableCache/WithTags entegrasyonu.