ÖZET VE TEKNİK CEVAP
İşlemsel yazma agregasyonlarını salt-eklenebilir (append-only) bir olay deposuna hapsedip, okuma modellerini deterministik sıra ofsetleri kullanarak asenkron güncellenen ve sorguya optimize edilmiş projeksiyon veritabanlarına ayrıştırarak.
Mühendislik El Kitabı & Mekanizma
1. Temel Çalışma Mekanizması
Komutlar, geçmiş olay akışından yüklenen İş Alanı Agregasyonları (Domain Aggregates) üzerinde çalıştırılır. İş kuralları doğrulanırsa, yeni değiştirilemez Olaylar (Domain Events) atomik bir ACID işlemiyle olay deposuna eklenir. Asenkron arka plan işleyicileri olay akışını tüketerek olayları denormalize edilmiş okuma depolarına (Elasticsearch, PostgreSQL okuma görünümleri, Redis) projekte eder. Bu yaklaşım işlemsel OLTP yazmalarını karmaşık çoklu-join okuma sorgularından tamamen ayırır.
2. Doğru Kullanım Senaryosu
Yüksek okuma/yazma asimetrisine sahip karmaşık iş alanları, katı denetim ve regülasyon gereksinimleri olan sistemler (fintek, muhasebe defterleri, sağlık) veya zamanda geriye dönük hata ayıklama gerektiren iş akışları.
3. Prodüksiyon Arıza Modları
1) Projeksiyon Kayması: Hatalı olaylar nedeniyle okuma modellerinin geriye düşmesi veya çökmesi; 2) Olay Şeması Kilitlenmesi: Geriye dönük uyumlu upcaster mekanizması olmadan olay yapısını değiştirmek; 3) Sınırsız Agregasyon Akışı: Enstantane (snapshot) almadan her komutta binlerce geçmiş olayı yüklemek.
4. Teşhis ve Telemetri Sinyalleri
Projeksiyon kuyruklarındaki tüketici gecikmesini (consumer lag), agregasyon yükleme süresini (P99 event rehydration süresi), DLQ kuyruğundaki hatalı olay sayısını ve yazma durumu ile okuma görünümü arasındaki tutarsızlık oranını izlemek.
5. Önleme ve Mimari Bariyerler
Her 100 olayda bir periyodik enstantane (snapshot) alın, şema evrimi için deterministik event upcaster'lar kullanın, işlem sıra numaralarıyla idempotent projeksiyon işleyicileri sağlayın ve okuma modellerini sıfırdan yeniden oluşturabilecek otomatik replay altyapısı kurun.
6. Mimari Ödünleşimler (Trade-offs)
Mükemmel yazma ölçeklenebilirliği, tam denetlenebilirlik ve esnek sorgulama kabiliyeti; buna karşılık nihai tutarlılık (eventual consistency) karmaşıklığı, UI tarafında iyimser durum yönetimi ihtiyacı ve yüksek mimari öğrenme eğrisi.
Vaka İncelemesi (TinyCTO Örneği)
TinyCTO Bölüm 101'de, ödeme anında 5 tablolu join çalıştıran sipariş yönetim sistemi anlık kampanya trafiğinde kilitlendi. CQRS geçişiyle komut işleyicisi 'OrderPlaced' olayını 3 ms altında eklerken, özelleştirilmiş okuma projeksiyonları müşteri sipariş geçmişini sıfır kilit çekişmesiyle sundu.
İnteraktif Konsept Alıştırmaları
3 AlıştırmaCQRS ile Event Sourcing arasındaki temel fark nedir?
Enstantane (snapshot) mekanizmaları Event Sourced agregasyonları nasıl korur?
Bir ön yüz (UI) arayüzü CQRS projeksiyonlarının nihai tutarlılığını nasıl yönetmelidir?
CQRS ve Event Sourcing Mimari Sınırı — Sıkça Sorulan Sorular
Kurumdaki her mikroservis CQRS ve Event Sourcing kullanmalı mıdır?
Hayır. CQRS/ES ciddi zihinsel ve operasyonel karmaşıklık getirir. Yalnızca yüksek iş mantığı karmaşıklığı veya denetim ihtiyacı olan temel sınırlı bağlamlara uygulanmalıdır.
Olay upcaster (event upcaster) nedir ve neden gereklidir?
Upcaster, geçmişteki olay kayıtlarını değiştirmeden, oynatma anında eski şemaya sahip olayları dinamik olarak güncel iş alanı nesnelerine dönüştüren ara katmandır.
Yinelenen olayların okuma projeksiyonlarını kirletmesi nasıl önlenir?
Projeksiyon işleyicilerinin kesinlikle idempotent olmasını sağlayın ve işlenen son olay ofsetini veya sıra numarasını projeksiyon veritabanı işlemi içinde saklayın.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸Event Sourcing, olay günlüğünü tek ve kesin gerçeklik kaynağı yapar; ilişkisel tablolar ise atılabilir türetilmiş projeksiyonlara dönüşür.
- ▸Komutlar yalnızca iş kurallarını denetlemeli ve olay üretmelidir; asla büyük sorgu veri setleri döndürmemelidir.
Yaygın Yanılgılar
- ✗CQRS ve Event Sourcing'in ayrılamaz olduğunu düşünmek: CQRS standart CRUD veritabanlarında uygulanabilir ve Event Sourcing teorik olarak CQRS olmadan da var olabilir.
Karar Kılavuzu & Önceliklendirme
İş alanı denetlenebilirliği, iş akışı zaman yolculuğu veya aşırı okuma-yazma oranı farkı, nihai tutarlılık ve çift model bakım maliyetini haklı çıkardığında CQRS/ES'e geçin.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL-DOC]CQRS (Command Query Responsibility Segregation)— Martin Fowler Blog
- [PAPER]CQRS Documents by Greg Young— Greg Young
