技能 workflow-orchestration-patterns
⚙️

workflow-orchestration-patterns

安全

使用 Temporal 模式设计可靠的分布式工作流

也可从以下获取: wshobson

由于故障、超时和状态管理的复杂性,构建可靠的分布式系统具有挑战性。本技能提供了来自 Temporal 的经过验证的工作流编排模式,可自动处理故障、在崩溃时保留状态并水平扩展。

支持: Claude Codex Code(CC)
🥉 75 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“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) 信号处理程序使用响应恢复工作流。包含超时以防外部系统永不响应。

安全审计

安全
v1 • 2/25/2026

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
已扫描文件
336
分析行数
1
发现项
1
审计总数
低风险问题 (1)
Static Analysis False Positives
Static scanner detected 24 patterns (external_commands, blocker, cryptography) but all are markdown documentation formatting, not executable code. Lines 27, 92-222 contain backtick-enclosed text for code examples (e.g., `workflow.now()`, `datetime.now()`) and pseudo-code diagrams. These are documentation illustrations, not actual shell commands or cryptographic operations. The skill is pure educational content with no execution capabilities.
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
100
规范符合性

你能构建什么

电商交易协调

为订单处理实现分布式事务,预留库存、扣款并完成订单,任何故障时自动回滚

长周期业务流程自动化

创建跨越多天或数周的多步骤审批工作流,具有自动状态持久化、超时处理和人工升级逻辑

微服务编排架构

使用实体工作流和 Saga 补偿设计弹性服务通信模式,替代脆弱的分布式事务

试试这些提示

设计分布式事务工作流
为 [domain] 设计一个 Temporal 工作流,包含 [steps] 步骤。为每个步骤添加补偿逻辑,并解释如何处理部分故障。
将状态机转换为工作流
我有一个包含 [states] 状态和转换的状态机。帮助我将其设计为具有适当确定性和活动分离的 Temporal 工作流。
排查工作流确定性违规问题
我的工作流出现确定性错误。代码使用了 [code snippet]。解释为什么这违反了确定性,以及如何使用工作流安全的方法修复它。
可扩展的工作流架构设计
我每天需要通过工作流处理 [number] 个项目。设计一个可扩展的架构,使用扇出/扇入、子工作流和任务队列分区。

最佳实践

  • 保持工作流专注于编排逻辑——将所有外部调用放在活动中
  • 使所有活动具有幂等性以便安全重试——使用幂等键或 upsert 操作
  • 始终配置超时和重试策略——区分可重试和不可重试的错误

避免

  • 直接从工作流代码调用外部 API 或数据库——始终使用活动
  • 在工作流中使用 datetime.now()、random() 或 threading——会破坏确定性和回放
  • 使活动不具有幂等性——重试会导致重复的副作用

常见问题

工作流和活动有什么区别?
工作流包含编排逻辑和决策。它们必须是确定性的,不能进行外部调用。活动处理所有外部交互,如 API 调用和数据库写入。活动可以是非确定性的,并包含内置重试逻辑。
为什么工作流必须是确定性的?
Temporal 在恢复期间会从历史记录回放工作流。如果相同的输入产生不同的输出,回放会中断,状态会变得不一致。确定性保证工作流能够从故障中精确恢复,并在多次执行中表现可预测。
如何在 Saga 事务中处理补偿?
在执行相应步骤之前注册每个补偿活动。将补偿存储在列表中。发生故障时,按反向顺序(后进先出)执行所有补偿。确保每个补偿都是幂等的,以便安全重试。
工作流可以永远运行吗?
可以,工作流可以运行数年。Temporal 会自动持久化状态并经受住基础设施故障。代表购物车或账户等长期实体的实体工作流可以在该实体的整个生命周期内持久存在,接收信号并响应查询。
如何扩展工作流以处理数百万个任务?
不要扩展单个工作流。使用扇出/扇入:生成许多子工作流或并行活动,等待完成后聚合结果。对于一百万个任务,生成一千个子工作流,每个处理一千个任务。保持每个工作流有界。
如果活动失败会发生什么?
Temporal 默认会自动重试活动。配置重试策略,包括初始间隔、退火系数、最大间隔和最大尝试次数。对于不可重试的错误(如无效输入),抛出特定错误类型以立即停止重试。

开发者详情

文件结构

📄 SKILL.md