别把 Domain Event 直接当集成事件
Crossing Boundaries with Integration Events

在 Domain-Driven Design 中,当事实需要跨越 Bounded Context 时,直接暴露内部 Domain Event 是常见陷阱。集成事件(Integration Event)应作为稳定的公共契约,剥离内部模型细节,仅传递业务事实。文章深入探讨了如何设计抗脆弱的契约、利用 Transactional Outbox 模式解决数据与消息的最终一致性问题,以及如何在至少一次投递(at-least-once delivery)场景下实现幂等处理。从 Event Carried State Transfer 到本地副本策略,作者揭示了如何在保持系统自治的同时,优雅地处理分布式系统的复杂性。
异步消息传递本身并不能消除耦合,契约仍然需要表达业务含义。