用途:该技能用于掌握基于 Temporal 的工作流编排架构设计,聚焦基础设计决策、弹性模式与构建可靠分布式系统的实践,面向跨越机器、服务与数据库的多步流程、需要全有或全无语义的分布式事务、长时间运行且需自动持久化状态、以及必须从最后成功步骤恢复的失败场景。适用场景包括预订、订单、营销活动、审批等业务流程,购物车、账户、库存等实体生命周期管理,CI/CD 流水线、资源开通与部署等基础设施自动化,以及需要超时与升级机制的人在回路系统。不适合简单 CRUD(用直接 API 调用)、纯数据处理管道(用 Airflow 或批处理)、无状态请求响应(用标准 API)和实时流(用 Kafka 或事件处理器)。
核心能力:区分工作流与 Activity——工作流承载编排与决策逻辑,必须确定性,不能直接发起外部调用,状态在故障间自动保留;Activity 负责所有外部交互(API、数据库、网络),可非确定性,需幂等,通常短时运行。核心模式包括:带补偿的 Saga(执行前先注册补偿,失败时按后进先出逆序执行,补偿须幂等);实体工作流(一次执行对应一个实体,接收信号变更状态,支持查询当前状态);扇出/扇入(派生子工作流或并行 Activity,等待全部完成并聚合,建议用 1K 子工作流×1K 任务而非放大单个工作流);异步回调(工作流发请求后等待信号,用于人工审批、Webhook 与长时外部过程)。状态管理上,完整程序状态自动保留,事件历史记录每条命令与事件,崩溃后可无缝恢复;工作流内禁止线程与锁、随机数、全局或静态变量、系统时间、直接文件与网络 I/O 及非确定性库,可使用 workflow.now()、workflow.random() 与纯函数。版本策略包括 Versioning API(workflow.get_version())、新建工作流类型路由新执行、保持向后兼容。弹性方面可配置重试策略(初始间隔、退避系数、最大间隔、最大尝试次数),区分可重试与不可重试错误;Activity 可用幂等键、唯一约束下的先查后写、upsert、记录已处理请求 ID 保证幂等,长任务可用心跳上报进度。
使用方式与限制:技能本身为设计指导,未提供具体安装命令或代码示例;实践时应遵循工作流职责单一、子工作流分解、边界清晰、本地时间跳跃测试环境等建议,Activity 保持幂等、短时、设置超时并区分错误类型,注意参数载荷上限 2MB。运营层面需监控执行时长、Activity 失败率、重试与退避、待处理工作流数量,并通过 worker 水平扩展、任务队列分区与 Activity 批处理提升伸缩性。资料中未提供收费、价格与平台支持等事实。