事件采购和字典对象

时间:2010-11-23 12:29:03

标签: cqrs event-sourcing

如何将事件源与几种类型的字典对象(如CountryRegionTime Zone等)以及来自特定域模型的字典类型(如Budget或{ {1}}定义。一些字典对象应该可以在管理员界面中进行编辑,但有些则不行。

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

我应该生成一组RemoveCountry个事件,即我应该将字典对象保存为事件流吗? 我们是否曾使用事件流以外的事实来源?


如果我没有字典对象的事件流,你将如何解决这个问题:

  

显示有国家/地区的国家/地区列表   每个国家/地区的用户数量。

在这种情况下,我需要在阅读模型中表示CountryAdded个对象,并监听Country事件。

谢谢。

1 个答案:

答案 0 :(得分:5)

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

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

BTW我建议将这些问题发布到DDD/CQRS group。它是CQRS / DDD / ES问题上最活跃的社区。