下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“saga-orchestration”。 为订单处理创建一个包含支付和库存步骤的 saga 编排器
预期结果:
一个实现 SagaOrchestrator 的 Python 类,包含返回 SagaStep 对象的 define_steps 方法,以及用于 start、handle_step_completed 和 handle_step_failed 的异步方法,具有正确的状态转换
正在使用“saga-orchestration”。 展示如何在订单 saga 中处理支付失败的补偿
预期结果:
补偿逻辑按相反顺序遍历已完成的步骤,发布补偿事件(如 RefundPayment 和 ReleaseInventory)以撤销成功步骤的效果
安全审计
安全All 19 static findings are false positives. The pattern-matching scanner misidentified Python code templates as Ruby shell execution, markdown text as cryptographic algorithms, and service names in diagrams as C2 indicators. The skill contains legitimate saga orchestration patterns for distributed systems with no security risks.
中风险问题 (3)
质量评分
你能构建什么
电子商务订单处理
实现多步骤订单履行,包括库存预留、支付处理和配送编排,故障时自动回滚。
金融交易工作流
创建可靠的金融流程,为多步骤转账、退款和对账任务提供原子补偿。
跨服务审批系统
构建跨多个服务的审批工作流,当审批被撤销或过期时自动补偿。
试试这些提示
创建一个 Python saga 编排器基类,管理 saga 状态(Started、Pending、Compensating、Completed、Failed),包含启动 saga、处理步骤完成以及在故障时按相反顺序执行补偿的方法。
实现一个 OrderFulfillmentSaga,协调 reserve_inventory、process_payment、create_shipment 和 send_confirmation 步骤,并为每个步骤提供适当的补偿操作。
创建一个事件驱动的编排 saga,使用事件总线发布和订阅事件(如 OrderCreated、InventoryReserved、PaymentProcessed 和 ShipmentCreated),无需中央编排器。
扩展 saga 编排器以包含每个步骤的超时处理。添加计划的超时检查,如果步骤在配置的时间窗口内未完成则触发补偿。
最佳实践
- 始终在设计正向操作之前设计补偿操作——补偿必须可靠
- 为所有命令使用幂等键,安全处理重复消息而不产生副作用
- 在所有事件和日志中存储关联 ID,以跨服务边界跟踪 saga 执行
避免
- 不要假设 saga 步骤会立即完成——始终实现异步处理和状态持久化
- 不要跳过补偿测试——模拟每个步骤的故障并验证回滚有效
- 不要直接耦合服务——使用异步事件消息保持松耦合