该技能聚焦使用 Temporal 设计可靠的分布式工作流编排,核心是把编排与执行分离:工作流负责编排,活动负责外部调用。
适用场景:跨机器、服务或数据库的多步骤流程;要求全有或全无语义的分布式事务;运行数小时至数年、需自动保存状态的长流程;必须从上次成功步骤恢复的故障恢复;订单、预订、审批、营销活动等业务流程;库存、账户、购物车等实体生命周期管理;CI/CD、资源开通、部署等基础设施自动化;以及需要超时与升级的人工介入系统。
不适合:简单 CRUD(用直接 API 调用)、纯数据处理管道(用 Airflow 或批处理)、无状态请求响应(用标准 API)、实时流处理(用 Kafka 或事件处理器)。
主要能力与原则:工作流保持单一职责、规模小,可用子工作流提升可扩展性;边界清晰,工作流只编排、活动只执行;活动应幂等、短生命周期(秒到分钟)、始终配置超时,长任务用心跳上报进度,并区分可重试与不可重试错误。确定性对工作流不可妥协,状态保存自动完成,需按失败与恢复来设计。
常见陷阱:工作流中误用 datetime.now() 而非 workflow.now()、使用线程或异步操作、直接调用外部 API、写入非确定性逻辑;活动中出现非幂等操作、缺少超时、未做错误分类、忽略参数 2MB 载荷上限。运维上需监控执行时长、活动失败率、重试与退避、待处理工作流数量,并可通过工作节点水平扩展、任务队列分区、子工作流拆分与活动批处理提升可扩展性。更详细的模式与示例见 references/details.md。