在使用事件採購的應用程序中,是否可以接受彙總範圍內的事件?整體事件是否可以接受?
考慮一個博客應用程序的設計示例,該應用程序提供了創建帖子和添加和刪除簡單標籤(帖子將是聚合根)的功能。
這可能導致以下事件:
PostCreated: postId, "title", "content"
TagAdded: postId, "Foo"
TagAdded: postId, "Bar"
TagAdded: postId, "Baz"
TagRemoved: postId, "Bar"
重放上述事件流會導致一個標題,內容和兩個標籤(「富」 &「巴茲」)後。
現在設想用戶界面只允許您在創建帖子時選擇現有標籤並且不接受自由文本;只有特權用戶纔有能力更新標籤主列表。
現在,當特權用戶創建新標籤時,需要創建相應的事件,以便a)信息實際上存儲在事件存儲中,以及b)在某個時刻更新讀取模型,以便用戶創建博客帖子可以在UI中選擇新標籤。
看起來像TagCreated: postId, "NewTag"
的事件對我來說不正確,因爲這些信息並不直接適用於單個帖子。
考慮,在這種情況下,信息不保證它自己的聚合根,只會在這有限的上下文中使用我所期望的線沿線的一個事件:
TagCreated("NewTag")
這些事件將被存儲在事件存儲使用與特定帖子的上一組事件相同的聚集ID,但沒有特定聚合實例的ID。
到目前爲止,這聽起來像是一種合乎邏輯的方式來處理這個問題,但想知道如果我以這種方式接近它,是否會漏掉任何明顯的東西。