DiyanetCleanArchitecture.slnx (yeni XML tabanlı .slnx formatı).
Üst düzey dizinler
src/ — kaynak kod
Katmanların sorumlulukları
Domain
İş kuralları. Hiçbir dış katmanı bilmez. Aggregate, Entity, Value Object, Domain Event, Factory, Domain Service.
Application
Use-case orkestrasyonu. MediatR Command/Query + Handler, Pipeline Behavior, Validator, DTO.
Infrastructure
Application arayüzlerinin somut implementasyonu: EF Core, RabbitMQ, Redis, Email, SMS, OAuth, TOTP, Hangfire.
API + Presentation
İnce controller’lar (sadece MediatR’a iletir) + iki React SPA.
API → Application → Domain. Infrastructure, Application arayüzlerini implemente eder. Detay: Mimari › Bağımlılık Akışı.
BuildingBlocks/ — altyapı paketleri
Uygulamadan bağımsız, başka projelere de taşınabilen 20 paket. Öne çıkanlar:
| Paket | İçerik |
|---|---|
BuildingBlocks.Caching (+.Redis) | HybridCache (L1+L2), distributed lock, tag invalidation |
BuildingBlocks.EventBus.MassTransit.RabbitMq | MassTransit + RabbitMQ + EF Outbox event bus |
BuildingBlocks.Keycloak | Çift-realm Keycloak SSO + claims transformation |
BuildingBlocks.Jwt | Çok-şemalı JWT (Backoffice + OTP Challenge) |
BuildingBlocks.OAuth | OAuth2 / PKCE soyutlaması (Google, Meta, Keycloak) |
BuildingBlocks.Otp | HMAC-SHA256 OTP üretim/doğrulama |
BuildingBlocks.Specification | Generic Specification (Ardalis tabanlı) |
BuildingBlocks.DeviceDetector | IP çözümleme, cihaz parmak izi, güven skoru |
BuildingBlocks.Observability | OpenTelemetry metrik/trace + health→gauge köprüsü |
BuildingBlocks.HealthChecks | K8s uyumlu live/ready/external endpoint’leri |
test/ — testler
docker/ — container yardımcıları
Compose ve ortam dosyaları
| Dosya | Amaç |
|---|---|
docker-compose.yml | Base: API + Website + Admin |
docker-compose.override.yml | Dev — tüm altyapı + host port’ları (otomatik yüklenir) |
docker-compose.stage.yml | Stage — nginx-proxy + acme-companion + Let’s Encrypt |
docker-compose.prod.yml | Prod — aynı yapı, prod realm/sertifika |
docker-compose.stage.local.yml | Local’de stage simülasyonu (HTTP-only) |
docker-compose.platform.yml / .shared-infra.yml / .app.yml | Hetzner çok-proje dağıtımı |
Sonraki adım
Mimari Genel Bakış
Katmanlar ve bağımlılık yönü.
Çözüm Yapısı
.slnx içindeki projeler ve referans grafiği.