事件溯源和字典对象

3
事件溯源可以与多种字典对象(如CountryRegionTime Zone等)和特定领域模型的字典类型(如BudgetAvailability定义)相结合。其中某些字典对象应该可以在管理员UI中进行编辑,而其他的则不能。
例如,我们决定不需要为国家提供管理员UI。因此,我们不需要实现AddCountry/RemoveCountry命令。
我是否需要生成一组CountryAdded事件,即是否应将字典对象持久化为事件流?我们是否会使用除事件流以外的真实来源?
如果我可以不使用事件流来处理字典对象,你会如何解决这个问题:
显示每个国家用户数的列表。
在这种情况下,我需要在读取模型中表示Country对象,并监听UserAdded事件。
谢谢。
1个回答

5
如果您使用事件溯源作为持久化机制,则:
  • 事件流是唯一的真相来源(从事件流生成的对象快照可用于提高性能,但它们只是技术手段)。
  • 当您使用事件溯源时,无需显式生成事件 - 只需发布处理命令时生成的实际事件即可。
  • 如果您有一个预定义的国家列表,这些国家永远不会更改,您可以直接将它们硬编码并按其国家代码引用。但是,这意味着视图模型和UI知道这一点,并且这些国家不会更改。

顺便说一句,我建议将这样的问题发布到DDD/CQRS group。这是与CQRS/DDD/ES相关问题最活跃的社区。


谢谢你,Rinat!你完全回答了我的问题。感谢你指引我去DDD/CQRS小组。我找到了许多有用的问题/答案。以后我会在这个小组里提出我的问题。 - Dmitry Schetnikovich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接