| 结构 | 事件链驱动,各服务自主决定后续动作 |
|---|---|
| 优势 | 无中心编排组件,松耦合 |
| 风险 | 流程隐式,缺少全局视图,容易出现循环或孤儿事件 |
- 事件命名用过去时,表达已经发生的事实
- 订阅克制:每个服务只订阅自己关心的少数事件
- 补偿显式:失败事件对应明确的回滚订阅方与动作
- 关联追踪:同一关联 ID 贯穿全链路事件与日志
- 消费防御:幂等消费与乱序容忍一并设计
- 流程文档:维护事件流向图并随新增订阅同步更新
| schema 治理 | 事件字段变更按兼容规则管理(先加字段,消费方迁移后再清理) |
|---|---|
| 演进提示 | 协同链条变复杂后可局部引入协调器,按流程段收敛职责 |
| 补偿纪律 | 补偿动作设重试上限,超限转人工处置队列 |
|---|---|
| 排障手段 | 按关联 ID 聚合事件链,离线重建流程实例定位卡点 |
协同式适合步骤少、参与者稳定的流程;步骤多或有严格补偿顺序时,编排式更易管控。