6.5. Event Sourcing ve CQRS
Event sourcing, mevcut durumu değil, onu üreten değişikliklerin tam dizisini saklar — herhangi bir geçmiş durumun yeniden inşa edilebileceği ve herhangi bir yeni görünümün türetilebileceği, yalnızca ekleme yapılan bir gerçekler log’u. Yazma modelini okuma modelinden ayıran CQRS ile eşleştirildiğinde; denetim, yeniden oynatma ve bağımsız olarak ölçeklenebilir okumalar sağlar. Bedeli gerçektir: yazma ve okuma tarafları arasında nihai tutarlılık, olay şeması evrimi ve sürekli büyüyen bir log’un operasyonel ağırlığı. Bu bölüm, deseni, projeksiyonlarını ve anlık görüntülerini (snapshot) ve bu gücün karmaşıklığa ne zaman değdiğini kapsar.
İncelenen Konular
Section titled “İncelenen Konular”- 6.5.1. Event Sourcing: Durum Yerine Olay Zinciri: Yalnızca mevcut durumu değil, durum değişikliklerinin tam dizisini saklayan event sourcing’i tanıtır.
- 6.5.2. Event Store Tasarımı: Yalnızca Ekleme Yapılan Log: Yalnızca ekleme yapılan event store’un tasarımını ve iyimser eşzamanlılık ile akış garantilerini kapsar.
- 6.5.3. CQRS: Okuma ve Yazma Modellerini Ayırmak: CQRS’i açıklar: yazma modelini bağımsız ölçeklenebilir, sorgu-optimize okuma modellerinden ayırmak.
- 6.5.4. Projeksiyonlar: Olaylardan Okuma Modelleri Oluşturmak: Olay akışını sorgu dostu şekillere yeniden oynatarak okuma modelleri oluşturan projeksiyonları kapsar.
- 6.5.5. Olay Versiyonlama ve Şema Evrimi: Sonsuza dek okunabilir olması gereken bir log için olay şeması evrimini ve upcasting stratejilerini açıklar.
- 6.5.6. Anlık Görüntüler: Uzun Olay Zincirlerini Optimize Etmek: Uzun olay zincirlerinin yeniden oynatma maliyetini tam geçmişi kaybetmeden sınırlayan anlık görüntüleri kapsar.