Bu doküman kimin için?
Bu doküman, Diyanet Clean Architecture şablonu üzerinde geliştirme yapacak veya bu şablonla kurulmuş bir sistemi işletecek herkes için yazıldı:- Geliştirici — yeni özellik eklerken hangi katmana ne yazılır, BuildingBlocks nasıl kullanılır.
- DevOps / SRE — Docker compose dosyaları, ortam değişkenleri, Keycloak provisioning, gözlemlenebilirlik.
- Mimar / Tech Lead — tasarım kararları, DDD sınırları, event-driven akış, çoklu instance senkronizasyonu.
Sistemin tek paragrafta özeti
.NET 10 üzerinde Clean Architecture + DDD + CQRS ilkeleriyle yazılmış, çift-realm Keycloak SSO ile vatandaş ve personel kimliklerini ayrıştıran, HybridCache (L1 in-memory + L2 Redis) ile düşük latency sunan, MassTransit + RabbitMQ Outbox pattern’iyle güvenli event yayını yapan, EF Core SaveChanges interceptor ile her aggregate’a audit (CreatedBy/UpdatedBy/DeletedBy) ve soft-delete yazan, iki React SPA (Website + Admin) içeren ve 3 ortamda (dev / stage / prod) Docker Compose ile dağıtılabilen bir monorepo şablonu.
Üst düzey mimari diyagram
Doküman haritası
Ön Gereksinimler
.NET 10, Node 22, Docker, IDE seçenekleri (VS 2026, VS Code, Cursor, Antigravity).
Hızlı Başlangıç
docker compose up -d --build ile local’i ayağa kaldır.Mimari
Katmanlar, bağımlılık akışı, tasarım kararları.
Domain (DDD)
Aggregate’ler, Value Object’ler, Domain Event’ler, Factory’ler.
Application (CQRS)
Command/Query + Handler, Pipeline Behavior, validasyon, mapping.
Veri Katmanı (EF Core)
DbContext, audit interceptor, soft-delete, migration, seed.
BuildingBlocks
20 paylaşılan modül — Keycloak, Cache, EventBus, JWT, OTP…
Event-Driven Akış
Domain → Outbox → RabbitMQ → Integration event handler.
Operasyon
Docker dev / stage / prod, nginx-proxy, gözlemlenebilirlik.