知识卡片

工作流引擎在编排与编制架构中的双重角色

普通读书笔记卡

内容

一个常见的直觉误区是把工作流引擎和编排绑定、甚至认为它和编制天然对立,但实际上无论架构使用编排还是编制,工作流引擎都能发挥关键作用。工作流引擎可以订阅事件、在特定事件到来时启动一个新的流程实例,也可以让一个已有的流程实例等待某个事件发生——比如需要在指定时间窗口内等待两个事件都到达、其中一个没按时到达就要走另一条分支。这类需求理论上也可以用流式事件处理(其查询语言支持时间窗口)实现,但不是每个团队都具备这类技术方案,用声明式方式表达复杂需求往往比直接描述一个流程模型更难理解,而且大多数场景下依然需要长期运行的能力——这正是工作流引擎的强项。真实场景里流程模型往往既对事件做出反应、又主动发出命令,两种方式同时使用——这恰好呼应了[[编排与编制的清晰定义及依赖方向决定耦合发生位置]]的核心洞见:编排/编制的选择不是针对整个系统的全局决定,而是针对每一条具体通信链路分别判断,工作流引擎恰恰是能在同一个流程模型里灵活混用”响应事件”和”发出命令”两种通信方式的载体,而不是只能服务于其中一种风格。

参考来源

- 位置:《流程自动化实战:系统架构和软件开发视角》第8章《平衡编排与编制》"8.5 工作流引擎的作用"(源文件:_epub-src/EPUB/xhtml/Section0001_0012.xhtml) - 结论依据:原文说明工作流引擎既能订阅事件启动/推进流程实例,也能在流程模型里主动发出命令,并指出真实场景通常两种方式混用,呼应编排编制针对单条通信链路而非整个系统的定义,直接支撑本卡片结论。 - 原始内容:工作流引擎可以订阅事件,并在特定事件到来时启动新的流程实例。另外,它也可以让现有的流程实例等待事件发生……流程模型对事件做出反应,同时也发出命令。两种方式都会使用。