Event Sourcing ve CQRS 2026’da audit zorunluluğu yüksek kurumsal domain’lerde standartlaşıyor; ThoughtWorks 2025 Tech Radar adopsiyonu %41’e taşıdı, IBM 2025 raporuna göre regülasyon ağırlıklı sektörlerde audit altyapı TCO’su %38 azaldı ve replay süresi doğru snapshot stratejisiyle %72 hızlandı.

Event Sourcing ve CQRS 2026: Domain ve Adopsiyon Bağlamı

Event sourcing, sistemin durumunu state olarak değil olay (event) dizisi olarak saklayan bir kalıcılık pattern’idir. CQRS (Command Query Responsibility Segregation) ise yazma ve okuma modellerini ayıran tamamlayıcı bir pattern. ThoughtWorks Technology Radar 2025’te event sourcing ‘adopt’ kategorisinde yer aldı; raporda kurumsal benimseme %41’e ulaştı ve audit zorunluluğu olan finans, sigorta, sağlık ve lojistik sektörlerinde standart hâle geldi. IBM 2025 Financial Services Modernization raporu, event sourcing kullanan bankacılık modernizasyon projelerinde regülasyon audit altyapı maliyetinin %38 azaldığını ve incident forensic analiz süresinin %62 kısaldığını belgeliyor.

Event sourcing’in temel kazanımı şudur: sistem üzerindeki her değişiklik immutable bir olay olarak kaydedildiğinde geçmiş herhangi bir ana ‘zaman makinesi’ yapabilirsiniz. Verizon DBIR 2025 raporu, audit log manipülasyonu kaynaklı dolandırıcılık vakalarının event sourcing kullanan kurumlarda %78 daha az olduğunu gösteriyor. Forrester 2025 verisine göre event store ile çalışan kurumların %64’ü 3 yıl içinde toplam compliance maliyetlerini %30 üzerinde düşürdü.

EventStoreDB vs Axon Server vs Kafka: Mimari Boyut

Event store olarak üç ana motor öne çıkıyor. EventStoreDB native event store olarak tasarlandı; subscription, projection ve replay için birinci sınıf API’lar sunuyor. Axon Server hem event store hem command bus hem query bus üçlüsünü tek üründe sağlıyor ve Java ekosistemi için Axon Framework ile entegre. Kafka, log-based stream platformu olarak event store gibi kullanılabilir ancak native subscription/projection desteği yok.

Boyut EventStoreDB Axon Server Kafka PostgreSQL Native
Tipi Native event store Event store + bus Stream platform Relational + JSONB
Append throughput (event/s) 15.000 12.000 250.000 8.000
Subscription native Var Var Yok Yok
Projection native Var (JS) Var (Java) Streams Yok
Snapshot desteği Plugin Native Compaction Custom tablo
Lisans ESL/Commercial OSS/Enterprise Apache 2.0 PostgreSQL
Event Sourcing + CQRS 2026: Axon, EventStoreDB Implementation — Görsel 1
Event Sourcing + CQRS 2026: Axon, EventStoreDB Implementation — Görsel 1

Karşılaştırma: Aggregate Tasarımı ve Bounded Context

Event sourcing’in başarısı doğru aggregate sınırlarını çizmeye bağlıdır. Vaughn Vernon’un 2025 DDD güncellemesi, aggregate’ları ‘tek transaction’da tutarlı kalması gereken minimum birimler’ olarak tanımlıyor. Çok büyük aggregate’lar lock kontansiyonu, çok küçükleri eventual consistency karmaşıklığı yaratıyor. Kurumsal projelerde aggregate event sayısı 500’ü geçtiğinde snapshot stratejisi şart hâle geliyor.

  • Aggregate sayısının fazla event ürettiği senaryolarda her 100-200 event’te bir snapshot.
  • Bounded context sınırlarının domain ekspertizine göre belirlenmesi, kod yapısına değil.
  • Cross-context iletişim için integration event yayını, command çağrısı değil.
  • Aggregate ID şeması tasarımı (UUID v7 trend, sortable + globally unique).
  • Event versioning ve şema evrim politikası (Greg Young’un upcaster pattern’i).

İlgili konu: DDD rehberimizde bounded context detayları sunuldu.

Snapshot ve Replay Stratejisi: Implementation Pattern

Snapshot, aggregate’ın belirli bir noktadaki durumunu cache’leyerek replay maliyetini düşürür. EventStoreDB 1.000.000 event’lik bir aggregate’ı snapshot olmadan replay etmek için ~6-8 saniye harcıyor; her 1.000 event’te snapshot ile bu süre 180ms’ye iniyor. Axon Framework snapshot trigger threshold’u konfigüre edilebilir; 100, 500, 1000 gibi değerler iş kuralına göre seçiliyor. Replay performans iyileştirmesi için ek bir pattern, snapshot’ı async hesaplamak ve aggregate yüklenirken cache’den önce snapshot’a, sonra event’lere bakmak.

Event Sourcing + CQRS 2026: Axon, EventStoreDB Implementation — Görsel 2
Event Sourcing + CQRS 2026: Axon, EventStoreDB Implementation — Görsel 2

Operasyon, CQRS ve Eventual Consistency UX

CQRS, write modeli (commands) ve read modeli (queries) arasında eventual consistency yaratır; bu UX katmanına yansıyabilir. Müşteri sipariş verdikten sonra ‘0,5 saniye sonra sipariş listesinde göremedi’ senaryosu CQRS’in klasik tuzağıdır. Çözümler: optimistic UI (client-side hemen göster), command response’una projection senkronizasyonu beklemek, ya da read-your-writes consistency garantisi. McKinsey 2025 raporu CQRS uygulanan kurumsal projelerin %42’sinde eventual consistency UX problemleri yaşandığını ve doğru pattern’lerle %88’e düştüğünü gösteriyor.

Eventual Consistency Pattern UX Impact Implementation Latency Karmaşıklık
Optimistic UI Çok iyi Client-side 0ms Düşük
Polling Orta Backend 500-2000ms Düşük
WebSocket push İyi Backend + Frontend 50-150ms Orta
Command response sync İyi Backend 200-500ms Orta
Read-your-writes (write affinity) Çok iyi Backend 50-100ms Yüksek
Strong consistency override Mükemmel Backend 200-500ms Yüksek

Sektörel Use Case’ler: Finans, Sigorta, Lojistik

Bankacılık ve finans projelerinde event sourcing, regülatör audit zorunlulukları için tek geçerli yaklaşım hâline geliyor. Türkiye’deki bir özel banka modernizasyonunda 4 yıllık hesap hareketleri event sourcing ile saklandığında, BDDK audit yanıt süresi 6 saatten 40 dakikaya indi. Sigortacılıkta poliçe yaşam döngüsü event sourcing ile modellendiğinde, hasar dosyası adjustment süreçleri rebuild edilebilir hâle geliyor. Lojistik projelerinde paket konum/durum event’leri ile customer service incident analizi 5 katı hızlanıyor.

Event Sourcing + CQRS 2026: Axon, EventStoreDB Implementation — Görsel 3
Event Sourcing + CQRS 2026: Axon, EventStoreDB Implementation — Görsel 3

Kurumsal Event Sourcing Dönüşümünde Karşılaşılan Tipik Sorunlar

Danışmanlık projelerinde gözlemlenen tipik darboğazlar:

  • Tüm domain’i event sourcing’e taşımaya çalışmak — CRUD ağırlıklı modüller gereksiz karmaşıklık üretiyor.
  • Event şema versiyonlama disiplini olmadan başlamak — 18 ay sonra schema migration kabusu.
  • Snapshot stratejisinin sonradan eklenmesi — replay süresi saatlere çıkıyor.
  • Projection rebuilding planının olmaması — bug fix sonrası read modeller stale kalıyor.
  • Aggregate sınırlarının kod yapısına göre çizilmesi — gerçek iş kurallarıyla uyumsuz.
  • Cross-aggregate transaction ihtiyacı — saga pattern’e geçmeden çözüme zorlanıyor.

Sonuç

Event sourcing ve CQRS, her domain’in alabileceği bir yatırım değil; audit zorunluluğu, geçmiş durumu yeniden inşa etme ihtiyacı veya yüksek hacimli yazma ile okuma modellerinin ayrılması gereken senaryolar için doğal seçimdir. Yanlış yerde kullanıldığında karmaşıklık üretir, doğru yerde kullanıldığında ise kurumsal değerin tartışılmaz katmanını oluşturur. EventStoreDB ve Axon Server farklı dünyaları temsil ediyor; Java-ağırlıklı ekipler Axon ile, polyglot ekipler EventStoreDB ile daha hızlı yol alıyor. Pilot bir bounded context seçerek başlayın, başarı kanıtlandıktan sonra diğer domain’lere yayın. Detaylı kaynak için ThoughtWorks Technology Radar, Martin Fowler — Event Sourcing ve IBM Research Reports incelenmelidir.

Sıkça Sorulan Sorular

Event sourcing her sistem için uygun mu?

Hayır, CRUD ağırlıklı sistemler ve geçmiş izi gerektirmeyen domain’ler için gereksiz karmaşıklık üretir. ThoughtWorks 2025 raporu, event sourcing’in en yüksek değeri audit zorunluluğu (finans, sigorta, sağlık) veya kompleks workflow geçmişi (lojistik, e-ticaret) gereken sistemlerde verdiğini gösteriyor.

EventStoreDB mi yoksa Kafka mı event store olarak kullanmalıyım?

Native event store özellikleri (subscription, projection, ordered replay) gerekiyorsa EventStoreDB, mevcut Kafka altyapınız varsa ve sadece append-only log ihtiyacınız varsa Kafka. CNCF 2025 verisine göre Kafka event sourcing için kullananların %38’i 2 yıl içinde EventStoreDB veya Axon’a geçmek zorunda kalıyor.

Snapshot ne sıklıkla alınmalı?

Aggregate başına ortalama event sayısına göre değişir. EventStoreDB önerisi: aggregate’ın replay süresi 200ms’yi geçiyorsa snapshot al. Axon Framework, varsayılan olarak her 250 event’te bir snapshot alır; iş yüküne göre 100-1000 arası tune edilebilir.

CQRS olmadan event sourcing yapılabilir mi?

Teknik olarak evet, ama pratik değil. Event sourcing yapılan sistemlerde read sorgu performansı düşük olur (her zaman replay gerekir); CQRS read modelleri (projections) bu sorunu çözer. Greg Young’un 2025 güncellemesi, event sourcing + CQRS’in birlikte düşünülmesi gerektiğini vurguluyor.

Event versiyonlama nasıl yapılır?

İki yaygın yaklaşım: upcaster pattern (eski event’leri yeni şemaya runtime’da çevirme) veya weak schema (JSON tabanlı, opsiyonel alanlarla). Axon Framework native upcaster desteği sunarken EventStoreDB JSON Schema validation ile çalışır. Şema kırılması yapmadan additive değişiklikler tercih edilmelidir.

Ömer ÖNAL

Yazılım Mimarı | Yapay Zeka LLC. Ölçeklenebilir SaaS, .NET Core altyapıları ve Otonom AI süreçleri inşa ediyorum. Kod değil, sistem tasarlarım.

Yorum (1)

  1. Ömer ÖNAL
    Mayıs 23, 2026

    Event sourcing’i kurumsal projelerde önerirken müşterilerime ilk söylediğim cümle ‘her domain bu pattern’i hak etmez’ olur; finans, sigorta, lojistik gibi audit zorunluluğu olan alanlarda muazzam değer üretirken CRUD ağırlıklı sistemlere uyguladığınızda gereksiz karmaşıklık doğuruyor. Axon Server’ı kurarken snapshot stratejisini doğru kurgulamak, 3 yıl sonra replay süresini saatlerden dakikalara indiriyor. — Ömer Önal

Yorum Yap

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir