SuperAPI AI 工具集

workflow-orchestration-patterns

办公与效率

查看项目

更新于 10-16 08:02

技能介绍

用途:该技能用于设计基于 Temporal 的持久化工作流,面向分布式系统的编排架构,覆盖工作流与活动的职责划分、韧性模式与最佳实践。

主要能力:区分工作流(编排与决策逻辑,必须确定性)与活动(外部交互,如 API、数据库、网络调用,可非确定性);提供核心模式,包括带补偿的 Saga(先注册补偿再执行,失败时按 LIFO 逆序回滚)、实体工作流(Actor 模型,一个执行对应一个实体,支持信号与查询)、扇出/扇入并行执行与结果聚合、异步回调(等待外部事件或人工审批)。同时涵盖状态管理与确定性:事件历史自动保存状态、崩溃恢复;工作流中禁止线程/锁、随机数、全局状态、系统时间、直接 I/O 或网络调用,应使用 workflow.now()、workflow.random() 等确定性替代;版本化策略包括 get_version、新建工作流类型、向后兼容。韧性方面涉及重试策略(初始间隔、退避系数、最大间隔、最大尝试次数、不可重试错误)、活动幂等(幂等键、唯一约束、upsert、记录已处理请求 ID)、活动心跳检测停滞。

使用方式:资料未提供具体安装命令或代码示例,仅给出设计决策框架——是否触及外部系统决定用活动,是否为编排/决策逻辑决定用工作流;并建议本地使用时间跳跃测试环境。

适用场景:跨机器/服务/数据库的多步流程、需全有或全无语义的分布式事务、可运行数小时至数年的长流程、需从最后成功步骤恢复的失败恢复、预订/订单/审批等业务流程、库存与账户等实体生命周期管理、CI/CD 与部署等基础设施自动化、需超时与升级的人工介入系统。

限制:不适用于简单 CRUD(用直接 API)、纯数据处理管道(用 Airflow 等批处理)、无状态请求/响应、实时流(用 Kafka)。常见陷阱包括误用 datetime.now()、在工作流中做线程或异步操作、直接调用外部 API、活动非幂等、缺少超时、未区分错误类型、忽略 2MB 参数负载上限。资料未提供收费、价格或平台支持信息。