DDD ve ilgili konuların yollarını öğrenmeye çalışıyorum. Ben "banka" uygulamak için basit sınırlı bağlam fikri geldi: hesapları var, para yatırılabilir, geri çekilebilir ve aralarında aktarılabilir. Değişikliklerin geçmişini tutmak da önemlidir.
Hesap varlığını belirledim ve bu olay satın alması, değişikliklerin izlenmesinde iyi olur. Diğer varlıklar veya değer nesneleri sorunla ilgili değildir, bu yüzden onlardan bahsetmeyeceğim.
Mevduat ve para çekme işlemleri düşünüldüğünde - nispeten basittir, çünkü sadece bir agrega değiştirilmiştir.
Farklı aktarırken - iki toplama bir MoneyTransferred olayı tarafından değiştirilmelidir . DDD, bir işlemde birden çok toplama değiştirmeyi kullanımdan kaldırır. Öte yandan olay tedarikinin kuralı, olayları varlıklara uygulamak ve bunlara dayalı olarak durumu değiştirmektir. Olay sadece veritabanında saklanabilirse, sorun olmaz. Ancak olay kaynaklı varlıkların aynı anda değiştirilmesini önlemek için, her bir toplamın olay akışını düzenleyen bir şey uygulamalıyız (işlem sınırlarını korumak için). Sürüm oluşturma ile başka bir sorun geliyor - Olayları saklamak ve bunları bir araya getirmek için bunları geri okumak için basit yapıları kullanamıyorum.
Sorum şu - bu üç prensibi nasıl bir araya getirebilirim: "bir toplu bir işlem", "olay-> toplamda değişiklik" ve "eşzamanlı değişiklik önleme"?