老炮淘金:13 个真实企业项目的架构高光 · S03
基于一套企业真实工业互联网低代码平台源码实读
关键词:低代码 · BPMN · Flowable · 设计态与运行态 · 流程引擎 · 多租户
👋 欢迎阅读
🏠个人主页:知守观
📘我的专栏:老炮淘金:13个真实企业项目的架构高光
💻当前内容:流程引擎架构
文章目录
- 引言
- 先把两条产品线摊开
- 设计态和运行态为什么必须分开
- 关键决策:Flowable 只用来解析
- 装配层:FlowFactory 的装配逻辑
- 两种运行时:同步递归与消息接力
- 能力调用:流程节点不认识 HTTP
- 这套架构的边界与代价
- 迁移检查清单
- 老炮点评
引言
早些年见过一个流程平台,设计器和执行引擎共用一个库。运营在后台改了个流程定义,一条 update 直接落在运行库那张表上,正在跑的几千个流程实例当场报错,客服电话打了一下午。
后来再看到低代码平台,我第一个问题都是同一个:画流程的人和跑流程的人,用的是同一套东西吗?
最近通读了我之前做的一套工业互联网低代码平台的源码。它对这个问题给的答案很干脆:两套服务、两条产品线、中间隔着一次发布。设计态的草稿修改不应直接影响运行中的实例。真正的隔离,需要发布版本不可变、运行实例绑定明确版本,以及运行时读取逻辑共同保证。Flowable 在这个平台里的角色也很反常识——只用来解析 BPMN,执行完全自研。
这篇把这个平台的架构拆开讲,哪些设计值得抄,哪些债它自己也还欠着。
本篇你能拿走三样东西:
- 设计态与运行态分离的部署结构:两条产品线、一次发布做隔离
- Flowable 只解析不执行的边界划法,以及自研运行时吃掉执行语义的原因
- 同步递归与消息接力两种运行时共存的装配方式
先把两条产品线摊开
整个平台按业务域切成两条产品线,八个可部署单元。流程线负责流程模型的生命周期,应用线负责应用产品的生命周期,两者通过发布快照连接:
- 流程线
- 能力中心:注册、管理、存储企业能力(Capability)
- 流程定义服务:设计、管