Event Sourcing Nedir?
İngilizce: Event Sourcing
Event sourcing, uygulama durumunu son değer olarak değil, değişiklikleri anlatan sıralı ve değişmez olay kayıtları olarak saklayan mimari desendir.
Event Sourcing Nedir?
Event sourcing, bir kaydın yalnızca güncel halini tutmak yerine o hale nasıl geldiğini adım adım saklar. Bir sipariş için “oluşturuldu”, “ödeme alındı”, “adres değişti”, “kargoya verildi” gibi olaylar append-only bir günlükte tutulur.
Nasıl Çalışır?
Uygulama bir komut alır, iş kuralını kontrol eder ve geçerliyse yeni bir olay üretir. Bu olay silinmez veya üzerine yazılmaz; olay deposuna eklenir. Sistem güncel durumu göstermek istediğinde ilgili olayları sırayla oynatarak son durumu yeniden oluşturur veya önceden hazırlanmış projeksiyonlardan okur.
Büyük akışlarda snapshot kullanılarak binlerce olayın baştan oynatılması önlenir. Okuma ve yazma modellerini ayıran CQRS yaklaşımıyla birlikte sık görülür. Event-driven sistemlerde olaylar başka servisleri de tetikleyebilir; DDD kullanılan alanlarda olay isimleri iş diline yakın tutulur.
Nerede Kullanılır?
Event sourcing, denetlenebilir geçmişin önemli olduğu ödeme, muhasebe, stok, rezervasyon ve finansal işlem sistemlerinde güçlüdür. “Bu bakiye neden böyle?” sorusunun yanıtı yalnızca son satırda değil, olay geçmişinde bulunur.
Maliyet tarafında dikkat ister: şema evrimi, olay versiyonlama, geri alma senaryoları ve veri gizliliği baştan tasarlanmalıdır. Basit CRUD ekranları için çoğu zaman gereğinden ağırdır.
İlgili Terimler
CQRS, komut ve sorgu sorumluluklarını ayırarak yazma modeliyle okuma modelini farklı ihtiyaçlara göre tasarlayan mimari desendir.
DDDDDD, karmaşık iş alanlarını domain modeli, bounded context ve ortak dil etrafında yazılım mimarisine taşıyan tasarım yaklaşımıdır.
Event-Driven (Olay Tabanlı)Event-driven mimari, sistemlerin sipariş oluştu, ödeme alındı gibi olaylara bağımsız bileşenlerle tepki vermesini sağlar.