Skip to main content
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

PaketGrupAmaç
BuildingBlocks.CachingCachingIHybridRequestCache — L1 (in-process) + L2 (Redis) birleşik cache, tag-based invalidation, multi-instance broadcast hook
BuildingBlocks.Caching.RedisCachingRedis IDistributedCache backend’i, request/database/socket cache implementasyonları, distributed lock
BuildingBlocks.Contracts.EventsMessagingIntegrationEvent base + IIntegrationEventHandler<T> kontratları (cross-service)
BuildingBlocks.EventBusMessagingEvent bus soyutlaması (IEventBus), subscription registry, builder pattern
BuildingBlocks.EventBus.MassTransit.RabbitMqMessagingAktif — MassTransit + RabbitMQ ile integration event dağıtımı, EF Outbox, retry/redelivery
BuildingBlocks.EventBus.EventBusRabbitMQMessagingLegacy — ham RabbitMQ.Client tabanlı event bus (MassTransit tarafından değiştirildi)
BuildingBlocks.KeycloakIdentityÇift-realm Keycloak SSO (Vatandaş + Personel), claims transformation, ICurrentUserService
BuildingBlocks.JwtIdentityÇok-şemalı JWT auth (Backoffice + OTPChallenge), token üretimi/doğrulama
BuildingBlocks.OAuthIdentityOAuth2 + PKCE soyutlaması (Google, Meta) — IOAuthClient<TUserInfo>
BuildingBlocks.OtpIdentityHMAC-SHA256 OTP üretimi, hash’leme, rate-limit ayarları
BuildingBlocks.DeviceDetectorIdentityIP çözümleme, cihaz parmak izi, trust/risk değerlendirme
BuildingBlocks.Security.BotProtectionIdentityGoogle reCAPTCHA v3 doğrulama (Polly resilient HTTP)
BuildingBlocks.SpecificationUtilArdalis.Specification tabanlı generic spec pattern + cache entegrasyonu
BuildingBlocks.TimeUtilIClock saat soyutlaması — SystemClock / FakeClock
BuildingBlocks.FileServerUtilStatik dosya sunumu, auth-aware özel file provider
BuildingBlocks.Hangfire.MediatR.ExtensionsUtilHangfire + MediatR köprüsü — IRequest’leri arka plan job olarak serialize etme
BuildingBlocks.Logging.SerilogObservabilitySerilog kurulumu, Seq sink, HTTP request enrichment
BuildingBlocks.Monitoring.PrometheusObservabilityPrometheus HTTP metrik middleware’i + /metrics endpoint
BuildingBlocks.ObservabilityObservabilityOpenTelemetry metrics/tracing pipeline, health→gauge köprüsü
BuildingBlocks.HealthChecksObservabilityK8s-uyumlu health check endpoint’leri (live/ready/startup/external)

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 IConfigurationIOptions<T> binding’i yapar (services.Configure<TOptions>(...)).
  • AddXxx(...) uzantısı — DI kaydı IServiceCollection döner, fluent chaining’e izin verir.
  • Kayıt sırası önemli — özellikle cache: AddRedisCache (L2) ÖNCE, sonra AddCache, sonra AddHybridCache. 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.