Süper net olmadığım şey, neden Agregalarınızı Etkinlik Deposunun kendisinden rehidrate edeceğinizdir.
Çünkü "olaylar" kayıt defteri.
Değişiklikleri "okuma" veritabanlarına yansıtmak bu kadar kolaysa, neden her zaman şeması etki alanı modelinize mükemmel şekilde uyan bir "yazma" veritabanına değişiklikleri yansıtmıyorsunuz? Bu etkili bir şekilde bir anlık görüntü veritabanı olacaktır.
Evet; bu durumu her seferinde sıfırdan yeniden oluşturmak yerine, toplu durumun önbelleğe alınmış bir kopyasını kullanmak bazen yararlı bir performans optimizasyonudur. Unutmayın: performans optimizasyonunun ilk kuralı "Yapma" dır. Çözüme ekstra karmaşıklık katar ve zorlayıcı bir iş motivasyonunuz olana kadar bundan kaçınmayı tercih edersiniz.
Bu durumda, Olay Deposu yalnızca şema değişiklikleri sonucunda "yazma" veritabanınızı yeniden oluştururken yararlı mıdır? Yoksa daha büyük bir şey mi kaçırıyorum?
Daha büyük bir şey eksik.
İlk nokta, olay kaynaklı bir çözüm düşünürseniz, bunun sebebi olanların tarihini korumada değer olmasını beklemenizdir, yani yıkıcı olmayan değişiklikler yapmak istediğiniz anlamına gelir .
Bu yüzden etkinlik mağazasına yazıyoruz.
Özellikle bu, her değişikliğin olay deposuna yazılması gerektiği anlamına gelir.
Rakip yazarlar, birbirlerinin düzenlemelerinin farkında değilse, potansiyel olarak birbirlerinin yazmalarını yok edebilir veya sistemi istenmeyen bir duruma getirebilirler. Tutarlılık gerektiğinde olağan yaklaşım, yazılarınızı dergideki belirli bir konuma (HTTP api'deki koşullu PUT'a benzer) hitap etmektir. Başarısız bir yazma, yazara, dergiyle ilgili mevcut anlayışlarının senkronize olmadığını ve iyileşmeleri gerektiğini söyler.
Bilinen iyi bir pozisyona geri dönün ve o noktadan bu yana ek etkinlikleri tekrarlayın, ortak bir kurtarma stratejisidir. Bilinen bu iyi konum, yerel önbellekte olanın bir kopyası veya anlık görüntü deponuzdaki bir temsil olabilir.
Mutlu yolda, toplamın anlık görüntüsünü bellekte tutabilirsiniz; harici bir mağazaya yalnızca yerel bir kopya olmadığında ulaşmanız gerekir.
Ayrıca, kayıt defterine erişiminiz varsa, tamamen yakalanmanıza gerek yoktur .
Her zamanki yaklaşımı Yani ( eğer bir anlık havuzunu kullanarak) 'dir bunu korumak için uyumsuz . Bu şekilde, kurtarmanız gerekiyorsa, toplamın tüm geçmişini yeniden yüklemeden ve tekrar oynatmadan yapabilirsiniz.
Kapsamlı yaşam sürelerine sahip ince taneli agregalar, genellikle bir anlık görüntü önbelleği tutma maliyetlerini aşmanın faydaları için yeterli olay toplamadığından, bu karmaşıklığın ilgi çekici olmadığı birçok durum vardır.
Ancak sorun için doğru araç olduğunda, toplama modelinin eski bir temsilini yazma modeline yüklemek, daha sonra ek etkinliklerle güncellemek, yapmak için oldukça makul bir şeydir.