首页 > 解决方案 > DDD、CQRS、事件溯源、聚合、相关聚合和持久性

问题描述

我刚刚进入 DDD、CQRS 和事件溯源,并且在相关聚合的概念以及在发布涉及两者的事件时可以在两者之间共享多少数据时遇到问题。我的问题...我有一个客户聚合,其中包含一组地址聚合和一个在将地址添加到客户时发布的事件。地址和客户聚合都与电话号码/销售人员和联系人保持关系。

我的理解是我只能通过 id 从另一个聚合中引用聚合。只要我只从客户聚合中引用地址 ID,我是否可以在添加地址时向客户传递更多关于地址的数据,而不仅仅是地址聚合 ID?

我认为我需要额外的数据,所以当我发布事件时,我最终可以将该数据/关系与读取端保持到客户地址表中。

标签: domain-driven-designaggregatepersistencecqrs

解决方案


当您发现自己试图访问属于另一个聚合的数据时,您应该仔细检查以确保您的聚合边界符合您的需求。

也就是说,将信息从一个聚合复制到另一个聚合是合理的。例如,在发货域中,我们可能会将发货地址复制到每个发货中,但我们可能不会在发货实体本身内管理发货地址的生命周期。

所以我们倾向于关注哪些实体持有权威信息,哪些使用的是陈旧的不可变副本。请参阅外部的 Pat Helland数据......


推荐阅读