src/BuildingBlocks/* altında 20 bağımsız altyapı paketi bulunur. Her biri tek bir kesişen sorumluluğu (caching, messaging, identity, observability, util) kapsüller; Application/Infrastructure katmanları bu paketleri AddXxx(...) uzantılarıyla Program.cs’de wire-up eder. Paketler iş kuralı içermez ve Application/Domain projelerine referans vermez — yeni bir projeye olduğu gibi taşınabilir.
Tüm paketler
Gruplama
Öne çıkanlar
Caching
Hibrit L1+L2 cache, tag invalidation, multi-instance broadcast.
Event Bus (MassTransit)
RabbitMQ topic exchange + EF Outbox + retry/DLX.
Keycloak
Çift-realm SSO, claims transformation, çift JwtBearer şeması.
OTP
HMAC-SHA256 stateless doğrulama, rate-limit.
BuildingBlocks.EventBus.EventBusRabbitMQ legacy’dir ve yeni geliştirmede kullanılmaz. Aktif integration event altyapısı BuildingBlocks.EventBus.MassTransit.RabbitMq’tır (EF Outbox + delayed redelivery destekli). Yeni event publish/subscribe için her zaman MassTransit paketini kullanın.Ortak desenler
Tüm paketler aynı sözleşmelere uyar:- Options pattern — her paket
IConfiguration→IOptions<T>binding’i yapar (services.Configure<TOptions>(...)). AddXxx(...)uzantısı — DI kaydıIServiceCollectiondöner, fluent chaining’e izin verir.- Kayıt sırası önemli — özellikle cache:
AddRedisCache(L2) ÖNCE, sonraAddCache, sonraAddHybridCache. Aksi halde L1-only çalışır.
İlgili
Caching mimarisi
L1/L2 stratejisi, invalidation ve multi-instance detayları.
Event akışı
Domain event → integration event → Outbox → RabbitMQ.