【发布时间】:2011-03-07 12:09:56
【问题描述】:
在使用事件溯源聚合后端基于 DDD 原则构建的环境中,独立的 aggregate roots (AR) 应如何相互通信?
例如,我有一个 Facility 聚合根 (AR),它有一个负责创建 Booking AR 的工厂方法。 Booking 是 Person AR 和 Facility AR 的时间敏感组合。一个Person 只能在一个Facility 中预订。
在 DDD 中,我会在 Person 中引用 Booking,在 Facility 中引用 Person。但是,在生成用于事件溯源的事件时,我认为尝试从后端处理事件反序列化会变得令人望而却步。因此,我只保留对基于值对象的唯一 ID 的引用。然而,这带来了一个新问题,当 AR 上的一个方法需要调用另一个 AR 上的另一个方法时——你如何处理这种情况?从域 AR 中访问事件源存储库?
这种情况下的一般用例是什么?我是不是把这一切都搞错了?
【问题讨论】:
标签: domain-driven-design cqrs event-sourcing