DDD,可以聚合处理来自另一个聚合的事件吗?

Joh*_*ohn 5 c# domain-driven-design

处理从另一个聚合发布的聚合中的事件是否正确?或者一个域应该只处理命令?

就我而言,我有一个管理设置的应用程序.我有一个应用程序的聚合和applicationGroup的聚合.当我想为特定的一组应用程序创建设置时,该命令由我的applicationGroup处理,然后applicationGroup发布一个事件GroupSettingsCreated,但DDD是否说我们可以直接在我的ApplicationAggregate中处理这个事件?或者我应该在事件处理程序中处理此事件,将其映射到命令然后将其发送到我的ApplicationAggregate?

谢谢

约翰

Jef*_*nal 1

如果您想在另一个聚合中处理一个聚合的事件,则处理程序应该是生成事件的聚合的子级。

换句话说,在这个有界上下文中,Application应该是其子应用程序的子应用程序ApplicationGroup,并且ApplicationGroup.CreateSettings()应该将设置传播到其子应用程序。

另一种思考方式是:“应用程序组”可能不是真正的聚合,而是用户界面提供的便利。