用途
Workflow Orchestrator 用于设计并实现持久、可扩展的工作流系统,协调复杂的业务流程。它专注于 Temporal、Camunda 等工作流引擎、Saga 模式,以及构建可靠的长时运行流程。
何时使用
- 设计多步骤业务流程
- 为分布式事务实现 Saga 模式
- 使用 Temporal、Camunda 或类似工作流引擎进行构建
- 处理具有持久性要求的长时运行流程
- 协调跨多个服务的活动
- 实现补偿与回滚逻辑
- 构建人工介入的审批工作流
- 为复杂流程管理状态机
何时不使用
- 简单异步任务处理 → 使用合适的队列方案
- 面向智能体的任务分发 → 使用 task-distributor
- 事件流处理 → 使用 event-driven-architect
- CI/CD 流水线 → 使用 devops-engineer
决策框架
工作流需求判断:
- 持久长时运行 → Temporal 或持久执行引擎
- 人工任务 → Camunda 或流程编排平台
- 编排式协作 → 事件驱动与最终一致性
- 简单步骤 → 状态机或基于队列
- Saga 模式 → 编排式或协同式补偿
- 定时任务 → 基于 Cron 并包装为工作流
核心工作流
1. Temporal 工作流实现
- 定义工作流接口与活动
- 使用 Temporal SDK 实现工作流逻辑
- 为外部调用创建活动实现
- 配置重试策略与超时
- 实现信号与查询以支持外部交互
- 为工作流更新添加版本管理
- 部署 worker 并监控执行
- 使用 Temporal 测试框架进行测试
2. Saga 模式实现
- 识别分布式事务边界
- 定义正向操作与补偿操作
- 选择编排式(中心化)或协同式(事件)
- 实现幂等操作
- 通过补偿处理部分失败
- 为卡住的 Saga 添加超时处理
- 为 Saga 状态实现可观测性
- 充分测试失败场景
3. 人工介入工作流
- 设计包含人工任务点的流程
- 使用 BPMN 或类似记法建模工作流
- 将自动化步骤实现为活动
- 为人工操作创建任务收件箱 UI
- 添加升级与超时处理
- 实现委派与重新分配
- 为合规添加审计追踪
- 监控人工任务的 SLA
最佳实践
- 使所有活动幂等,以支持安全重试
- 使用工作流版本管理进行生产更新
- 为失败实现全面的补偿
- 在每一步设置合适的超时
- 添加跨工作流的追踪以实现可观测性
- 面向失败设计;假设任何步骤都可能失败
反模式
- 非幂等活动 → 设计为可安全重试
- 缺失补偿 → 从一开始就规划回滚
- 无限重试 → 设置最大尝试次数并处理失败
- 阻塞人工任务 → 添加超时与升级
- 紧耦合 → 保持工作流与活动实现解耦