我有两个集合,叫做CompanyAggregate和ProfileAggregate,它们的聚合根分别是Company和Profile,一个公司可以有很多Profiles。负责创建公司的视图也可以同时创建概要文件(有一个列表和一个附加按钮,是一个视图需求),所以当用户单击“保存”按钮时,应该保存两个集合。问题是,实现这一目标的最佳途径是什么?我有一个工作流程,如下所示:
这些调用是来自客户端还是来自我们的API网关(API分解而不是组合),还是应该使用域事件?在后一种情况下,我必须将配置文件数据传递给公司聚合,以引发导致边界违规的域事件。
有些人会说概要文件应该放在公司的聚合中,但事实并非如此,因为概要文件可以被另一个Root直接引用。
发布于 2018-08-16 14:50:10
由于您提到可以创建概要文件,但不是强制性的,所以我将在CQRS级别将其设置为两个单独的命令。你关于将个人资料传递给公司的直觉当然是正确的。个人资料看起来不像公司出现的副产品。
另一方面,使它在客户端级别上有两个不同的请求可能会导致一些排序问题。我会将两者打包到一个HTTP请求中,除非您有某种方式为公司预先生成标识符,以便将这两个请求都放入其中。
https://stackoverflow.com/questions/51868870
复制相似问题