这个模板适合做什么
Saga 模式架构图展示了一个长事务如何由多个服务的本地事务组成,并在某一步失败时通过补偿撤销之前已提交的步骤。本模板呈现标准的编排式 Saga:一个编排器协调正向路径(订单 → 支付 → 库存 → 物流),当下游失败时补偿路径反向撤销已提交步骤(释放库存 → 退款 → 取消订单)。适合用于设计分布式事务、整理回滚语义文档,或解释为什么 ACID 无法跨微服务、Saga 为何是答案。
适用场景
- 设计跨多个微服务的分布式事务。
- 解释为什么单个 ACID 事务无法跨服务。
- 整理 Saga 中每一步的补偿动作文档。
- 规划针对临时性失败的重试 vs 补偿策略。
- 定位 Saga 卡在了哪两步之间。
- 对比编排式 Saga 与编排式(事件驱动)Saga。
使用步骤
- 1顶部从编排器开始——它驱动 Saga。
- 2把正向路径画成水平的本地事务链。
- 3在正向路径末端加 Done 节点表示成功结果。
- 4在下方画补偿行——除最后一步外每个正向步骤一个补偿。
- 5用虚线「失败时」箭头把每个正向步骤连到它的补偿。
- 6把补偿从右向左链起来,展示回滚顺序。
简单示例
订单 Saga
编排器 → 订单服务(创建订单)
订单 → 支付服务(向客户收款)
支付 → 库存服务(预扣库存)
库存 → 物流服务(预订承运)→ Done
第 N 步失败时:跑补偿 N-1、N-2、...、1
在线开始编辑
在 CodePic 中打开模板后,替换示例节点,就能很快整理成自己的学习导图。


