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.