workflow-orchestration-patterns

利用Temporal设计分布式系统的持久化工作流。涵盖工作流与活动分离、Saga模式、状态管理及确定性约束。适用于构建长时运行流程、分布式事务或微服务编排场景。

作者

安装

热度:7

下载并解压到你的 skills 目录

复制命令,发送给 OpenClaw 自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=sickn33-skills-workflow-orchestration-patterns&locale=zh&source=copy

Workflow Orchestration Patterns - Temporal 工作流编排模式

技能概述

掌握使用 Temporal 构建可靠分布式系统的工作流编排架构,涵盖工作流与活动分离设计、Saga 补偿模式、状态管理和确定性约束等核心模式,用于构建长时间运行的流程、分布式事务和微服务编排。

适用场景

  • 跨服务的多步骤流程:当业务流程需要跨越多个机器、服务或数据库,且需要可靠的状态协调时,如电商订单处理、支付流程、库存管理等场景。
  • 需要可靠恢复的长时间运行流程:当流程可能运行数小时到数年,且必须从任何故障点自动恢复时,如账户生命周期管理、基础设施自动化、实体生命周期追踪。
  • 需要补偿的分布式事务:当需要实现跨多个服务的"全有或全无"事务语义,且失败时能执行补偿操作时,如预订系统、资金转移、多步骤业务审批。
  • 核心功能

  • Saga 补偿事务模式:为每个步骤注册补偿操作,失败时按逆序执行所有补偿(LIFO),实现分布式事务的可控回滚,适用于支付、库存、履约等需要原子性的业务场景。
  • 实体工作流(Actor 模型):将单个实体实例(购物车、账户、库存项)建模为长时间运行的独立工作流,通过信号接收状态变更,通过查询获取当前状态,自然封装实体行为并保证一致性。
  • 并行任务编排(Fan-Out/Fan-In):通过子工作流或并行活动实现大规模任务分发与结果聚合,遵循"不扩展单个工作流"原则,将 1M 任务分解为 1K 子工作流 × 1K 任务,实现水平扩展。
  • 常见问题

    Temporal 中 Workflow 和 Activity 有什么本质区别?

    Workflow 是编排逻辑层,包含业务决策和协调逻辑,必须是确定性的(相同输入产生相同输出),不能直接调用外部系统;Activity 是外部交互层,处理所有 API 调用、数据库写入、网络请求等非确定性操作。简记:Workflow 决定"做什么",Activity 执行"怎么做"。

    什么时候不应该使用 Temporal 工作流编排?

    对于简单的 CRUD 操作(直接使用 API 调用)、纯数据处理流水线(使用 Airflow 或批处理)、无状态请求响应(使用标准 REST API)、实时流处理(使用 Kafka 或事件处理器)等场景,不需要引入工作流编排的复杂度。

    为什么 Activity 必须实现幂等性?

    Temporal 会在网络故障、超时等情况下自动重试 Activity,这意味着同一个 Activity 可能被多次执行。幂等性保证"执行 N 次等于执行 1 次",实现方式包括:使用幂等键去重、唯一约束的检查后操作、Upsert 代替 Insert、追踪已处理的请求 ID。