首页/开发/系统分析与架构设计速查/领域事件(Domain Event)
需求分析与建模61 条

领域事件(Domain Event)

领域事件表示领域中已经发生的事实,命名用过去时(订单已提交);它用于解耦聚合间协作,与对外发布的集成事件在用途与结构上有所区别。

命名过去时 + 业务语义,如 OrderSubmitted
内容事件 ID、发生时间、聚合标识与关键数据
与集成事件领域事件面向本上下文;集成事件面向外部,通常更稳定且版本化

命名对照

表达示例说明
命令(祈使句)SubmitOrder意图,可能被拒绝
领域事件(过去时)OrderSubmitted事实,已发生
集成事件(过去时 + 版本)sales.order.submitted.v1对外契约,可演进
事件是已发生的事实,发布后不应被撤回;补偿应通过新事件表达。

易错点

  • 事件命名用祈使句(SubmitOrder),与命令混淆
  • 把领域事件直接当集成事件发布,内部模型变更破坏外部消费者

数据来源与参考

  • Eric Evans《Domain-Driven Design》
  • Vaughn Vernon《Implementing Domain-Driven Design》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌