事件溯源如何与多种类型的字典对象相结合,例如 Country, Region, Time Zone ETC。以及来自特定域模型的字典类型,例如 Budget 或者 Availability 定义。有些字典对象应该可以在管理 UI 中编辑,但有些则不能。

例如,我们决定不需要国家/地区的管理 UI。因此我们不需要实现 AddCountry/RemoveCountry 命令。

我应该生成一组 CountryAdded 事件即我应该将字典对象保留为事件流吗? 除了事件流之外,我们是否使用过真相来源?


如果我可以不使用字典对象的事件流,您将如何解决这个问题:

显示具有 每个国家/地区的用户数。

在这种情况下,我需要代表 Country 读取模型中的对象,带有侦听器 UserAdded 事件。

谢谢。

有帮助吗?

解决方案

如果您使用事件源作为持久化机制,那么:

  • 事件流是唯一的事实来源(从事件流生成的对象快照可用于提高性能,但它们只是技术)。
  • 使用事件源时,不需要显式生成事件 - 只需发布处理命令时生成的实际事件。
  • 如果您有一个永远不会改变的预定义国家/地区列表,您可以通过其国家/地区代码进行硬编码和引用。然而,这意味着视图模型和 UI 知道这一点,并且国家/地区不会改变。

顺便说一句,我建议将此类问题发布到 DDD/CQRS 组. 。它是 CQRS/DDD/ES 问题上最活跃的社区。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top