工作流引擎是什么
工作流引擎把长流程的状态、重试、超时与补偿交给引擎管理,业务代码只实现单个步骤的逻辑。核心能力是持久化执行:引擎把每一步的执行结果落盘,进程崩溃或重启后能从上次完成的位置继续,不必从头重跑整个流程。
什么时候该用
流程跨越多个服务、持续数分钟到数天、需要人工介入或定时等待时,引擎的价值最明显。反过来,高频短任务放进引擎,吞吐与成本都不划算,用消息队列加幂等消费更简单。判断标准可以概括为一句:流程需要被持久记住状态,就值得交给引擎。
基本信息
| 核心能力 | 持久化执行状态、可靠重试、定时与人工任务、可视化追踪 |
|---|---|
| 典型场景 | 订单履约、审批流、数据管道调度 |
| 选择要点 | 语言生态、状态存储、运维与可观测性 |
| 自建代价 | 状态存储与故障恢复逻辑复杂,通常不建议自研 |
选型评估维度
| 维度 | 核对点 |
|---|---|
| 状态存储 | 独立数据库或集群,备份与恢复需要演练 |
| 版本兼容 | 流程定义升级策略与历史实例的兼容方式 |
| 调度能力 | 定时、延迟、重试与人工任务是否原生支持 |
| 可观测性 | 实例检索、卡单定位与审计日志 |
| 语言生态 | 团队技术栈是否有成熟的客户端与长期维护 |
典型使用场景
- 订单履约:拆单、扣库存、发货、通知按步骤编排
- 审批流:人工审批节点与超时催办
- 数据管道调度:按依赖关系触发批处理任务
- 对账与补偿:失败步骤自动重试并触发补偿逻辑
- 跨服务长事务:用补偿替代分布式事务
编排引擎会成为关键基础设施:它的可用性、数据备份与版本兼容必须纳入架构评审,否则引擎故障等于全部业务流程停摆。