在使用事件采购的应用程序中,是否可以接受汇总范围内的事件?整体事件是否可以接受?
考虑一个博客应用程序的设计示例,该应用程序提供了创建帖子和添加和删除简单标签(帖子将是聚合根)的功能。
这可能导致以下事件:
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。
到目前为止,这听起来像是一种合乎逻辑的方式来处理这个问题,但想知道如果我以这种方式接近它,是否会漏掉任何明显的东西。