2016-03-24 28 views
1

Olay kaynağı kullanıyorum, iki sınırlı içeriği sürekli olarak nasıl tutarlı tutabileceğimin bir sorusunun cevabını bulabilir miyim? Bazı bağlamları bir içeriğin varlığından başka bir bağlamın değer nesnesine çoğalttığım bir durumu kastediyorum. Değer değiştiğinde bildirim almak için alan adı etkinliklerini kullanabileceğimi biliyorum, ancak bu değerleri kullanan etkinlik mağazamdaki tüm bu toplamları nasıl güncelleyeceğim? Etkinlik deposundan topluluğun kimliğinden başka bir özellik tarafından sorgulanması zordur.Olay Sourcing: sonuçta tutarlı sınırlı bağlamlar

Örnek:

Kimlik Bağlam:

  • Kullanıcı (id, kullanıcı adı, parola, e-posta) - agrega kök

Tartışma Bağlam:

  • Yazar (id , userame) - değer nesnesi (bu değerler Kimlik Bağlamındadır)
  • Mesaj (id, içerik, yazar) - agrega kök

cevap

1

Bir Değer Nesne burada iyi bir seçimdir (AuthorId, username) yapma emin değilim.

  • Kullanıcı adı, büyük bir ileti topluluğuna sahip olması gereken önemli bir veri parçası değildir. Bu sabitlemeyi, kullanıcı adına dayanan bir zorunluluk ne olurdu?

  • Muhtemelen CQRS'nin yerinde olması gerekir (değil mi?). Böylece, bir Message'ın kullanıcı adı, toplamın kendisinden ziyade bir okuma modeli aracılığıyla alınabilir.

Tartışma bağlamında bağımsız bir Yazar toplamı oluşturabilir ve yalnızca AuthorId tarafından gönderilen iletiye sahip olurum. Bir olay Kimlik'ten geldiğinde, sadece AuthorId tarafından bir araya gelmek ve ne yapmanız gerekiyorsa onu yapmak zorundasınız.

+0

Evet, bu sorunu çözmek için iyi bir yol olabilir. – Toni

+0

Katılıyorum, bu bir değer nesnesi olmamalı çünkü kendi kimliği var. Bu basitleştirilmiş varlık. –