知识卡片

工作流引擎的三大核心功能:持久化、调度与版本化

普通读书笔记卡

内容

在[[工作流引擎的两大核心功能与跨边界即需要长期运行能力]]提到的持久化状态和任务调度基础上,工作流引擎在技术层面还有第三项核心功能——版本化,三者共同构成了它作为”擅长等待和调度的状态机”的完整能力。持久状态/持久化:引擎要持续追踪所有运行中流程实例的当前状态和历史审计数据,这听起来简单,但应用规模一大就是真正的挑战——理解系统当前状态需要能快速触发一系列查询(因此离不开配套的运维工具),还要处理对同一流程实例并发访问时的事务管理。调度:引擎需要追踪任务时限,流程卡住太久问题会变严重,因此必须有调度机制让引擎在该执行任务时及时响应,这个机制同时支撑了任务出问题时的重试能力。版本化:长期运行的流程始终”在运行中”(这个”运行中”也可能是”等待中”),每次修改流程定义(比如加一个新任务)都得考虑当前所有在跑的实例——大多数工作流引擎支持多个版本的流程定义并行存在,好的工具还能以自动化且可测试的方式,把运行中的实例迁移到新版本。引入工作流引擎的代价是在技术栈里多了一个组件,需要选型、学习、设计架构去融入——但投资通常很快就有回报,学习曲线平缓的轻量级工具已经能解决”较小”的问题,值得从这类工具快速上手。

参考来源

- 位置:《流程自动化实战:系统架构和软件开发视角》第2章《工作流引擎和流程解决方案》"2.1.1 核心功能"(源文件:_epub-src/EPUB/xhtml/Section0001_0005.xhtml) - 结论依据:原文分别定义持久状态/持久化(追踪状态与审计数据、处理并发事务)、调度(追踪任务时限、支持重试)、版本化(多版本流程定义并存、支持迁移实例)三项核心功能,并说明引入工作流引擎需要权衡组件成本与投资回报,直接支撑本卡片结论。 - 原始内容:引擎会持续追踪所有正在运行的流程实例的当前状态和历史审计数据……工作流引擎需要追踪任务时间……大多数工作流引擎支持多个版本的流程定义并行存在……工作流引擎是一种擅长等待和调度的状态机。