关于 workflow-orchestration-patterns
workflow-orchestration-patterns 是面向 Temporal 的指南,帮助设计分布式系统中的可靠工作流。内容涵盖架构选择、弹性设计、工作流与 Activity 设计及运维实践。
主要功能
- 01Temporal 工作流架构指南
- 02恢复与弹性模式
- 03工作流和 Activity 设计实践
- 04常见陷阱与限制
- 05监控和扩展考量
适用场景
- 01设计长时间运行的业务流程
- 02恢复多步骤分布式操作
- 03构建含超时和升级处理的审批流
- 04规划 CI/CD 或基础设施工作流
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill workflow-orchestration-patterns安装后在 Claude Code 中输入/workflow-orchestration-patterns确认已加载。
附带文件references/details.md
详细介绍
工作流编排模式
使用 Temporal 掌握工作流编排架构,涵盖基本设计决策、弹性模式以及构建可靠分布式系统的最佳实践。
何时使用工作流编排
理想用例(来源:docs.temporal.io)
- 多步骤流程,跨机器/服务/数据库
- 分布式事务,要求全有或全无语义
- 长时间运行的工作流(数小时到数年),具备自动状态持久化
- 故障恢复,必须从上一个成功步骤继续
- 业务流程:预订、订单、营销活动、审批
- 实体生命周期管理:库存跟踪、账户管理、购物车工作流
- 基础设施自动化:CI/CD 管道、置备、部署
- 人机协同系统,需要超时和升级
何时不应使用
- 简单的 CRUD 操作(使用直接 API 调用)
- 纯数据处理管道(使用 Airflow、批处理)
- 无状态请求/响应(使用标准 API)
- 实时流处理(使用 Kafka、事件处理器)
详细模式与完整示例
详细的模式文档位于 references/details.md。当上述导航层级不够用时,请阅读该文件。
最佳实践
工作流设计
- 保持工作流聚焦 - 每个工作流单一职责
- 小型工作流 - 使用子工作流以实现可扩展性
- 清晰边界 - 工作流负责编排,活动负责执行
- 本地测试 - 使用时间跳跃测试环境
活动设计
- 幂等操作 - 可安全重试
- 短生命周期 - 数秒到数分钟,而非数小时
- 超时配置 - 始终设置超时
- 长任务心跳 - 报告进度
- 错误处理 - 区分可重试与不可重试
常见陷阱
工作流违规:
- 使用
datetime.now()而不是workflow.now() - 在工作流代码中使用线程或异步操作
- 直接从工作流调用外部 API
- 工作流中的非确定性逻辑
活动错误:
- 非幂等操作(无法处理重试)
- 缺少超时(活动永久运行)
- 无错误分类(重试验证错误)
- 忽略负载限制(每个参数 2MB)
运维注意事项
监控:
- 工作流执行时长
- 活动失败率
- 重试次数与退避
- 待处理工作流数量
可扩展性:
- 使用 worker 进行水平扩展
- 任务队列分区
- 子工作流分解
- 适当时进行活动批处理
其他资源
官方文档:
- Temporal 核心概念:docs.temporal.io/workflows
- 工作流模式:docs.temporal.io/evaluate/use-cases-design-patterns
- 最佳实践:docs.temporal.io/develop/best-practices
- Saga 模式:temporal.io/blog/saga-pattern-made-easy
关键原则:
- 工作流 = 编排,活动 = 外部调用
- 确定性对工作流不可妥协
- 幂等性对活动至关重要
- 状态保留是自动的
- 为故障与恢复而设计
评论
支持 Markdown