架构模式: 领域事件
来自领域驱动设计(DDD)。
上下文
服务通常需要在更新其数据时发布事件。例如,可能需要这些事件来更新CQRS视图。或者,该服务可能参与基于 choreography-based saga编排,并使用事件进行协调。
问题
服务在更新数据时如何发布事件?
解决方案
将服务的业务逻辑组织为DDD聚合的集合,这些聚合在创建或更新时发出域事件。该服务发布这些域事件,以便其他服务可以使用它们。
关联模式
- Saga和CQRS模式创造了对这种模式的需求
- Aggregate模式用于构建业务逻辑
- 事务发件箱模式用于将事件作为数据库事务的一部分发布
- 事件源有时用于发布域事件