由于故障、超时和状态管理的复杂性,构建可靠的分布式系统具有挑战性。本技能提供了来自 Temporal 的经过验证的工作流编排模式,可自动处理故障、在崩溃时保留状态并水平扩展。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“workflow-orchestration-patterns”。 设计一个包含库存预留、扣款和履约步骤的支付工作流
预期结果:
以下是 Saga 模式设计:1) ReserveInventoryActivity(补偿:ReleaseInventoryActivity),2) ChargePaymentActivity(补偿:RefundPaymentActivity),3) FulfillOrderActivity(补偿:CancelFulfillmentActivity)。在执行前注册每个补偿。任何故障时,按后进先出(LIFO)顺序运行补偿。所有活动必须是幂等的。
正在使用“workflow-orchestration-patterns”。 为什么我不能在工作流中使用 datetime.now()?
预期结果:
工作流为了回放必须是确定性的。datetime.now() 每次返回不同的值,会破坏确定性。请改用 workflow.now(),它提供基于工作流时钟的确定性时间。同样的原则适用于 random()——使用 workflow.random() 获取确定性随机数。
正在使用“workflow-orchestration-patterns”。 如何处理可能需要数小时的第三方 API 调用?
预期结果:
使用异步回调模式:1) 活动向外部系统发送请求,2) 工作流使用 workflow.wait_for_condition() 等待信号,3) 外部系统在完成时调用 webhook,4) 信号处理程序使用响应恢复工作流。包含超时以防外部系统永不响应。
安全审计
安全Static analysis detected 24 potential security issues (external commands, weak cryptography, system reconnaissance), but all are FALSE POSITIVES. The skill contains only markdown documentation with code examples in backticks for illustration purposes. No executable code is present - this is a purely educational skill about Temporal workflow patterns with pseudo-code diagrams and best practices. The 'backtick' patterns are markdown formatting, not shell execution. The 'weak cryptography' flags are false positives from words like 'temporal' matching crypto patterns. The skill is safe to publish.
低风险问题 (1)
质量评分
你能构建什么
电商交易协调
为订单处理实现分布式事务,预留库存、扣款并完成订单,任何故障时自动回滚
长周期业务流程自动化
创建跨越多天或数周的多步骤审批工作流,具有自动状态持久化、超时处理和人工升级逻辑
微服务编排架构
使用实体工作流和 Saga 补偿设计弹性服务通信模式,替代脆弱的分布式事务
试试这些提示
为 [domain] 设计一个 Temporal 工作流,包含 [steps] 步骤。为每个步骤添加补偿逻辑,并解释如何处理部分故障。
我有一个包含 [states] 状态和转换的状态机。帮助我将其设计为具有适当确定性和活动分离的 Temporal 工作流。
我的工作流出现确定性错误。代码使用了 [code snippet]。解释为什么这违反了确定性,以及如何使用工作流安全的方法修复它。
我每天需要通过工作流处理 [number] 个项目。设计一个可扩展的架构,使用扇出/扇入、子工作流和任务队列分区。
最佳实践
- 保持工作流专注于编排逻辑——将所有外部调用放在活动中
- 使所有活动具有幂等性以便安全重试——使用幂等键或 upsert 操作
- 始终配置超时和重试策略——区分可重试和不可重试的错误
避免
- 直接从工作流代码调用外部 API 或数据库——始终使用活动
- 在工作流中使用 datetime.now()、random() 或 threading——会破坏确定性和回放
- 使活动不具有幂等性——重试会导致重复的副作用