Skip to content

架构概览

五层自上而下:设计层、应用层、引擎层、规则引擎、存储层。每层可单独取用——引擎能脱离 gflow 嵌入你的系统,gflow 也不锁死你的数据。
gflow 商业版Apache-2.0 开源分界线在引擎层:引擎及以上开源,设计与应用层商用
Design设计层商业版 · 四大自研部件
流程设计器钉钉式树形
gform-designer 表单设计器29 种字段
规则链设计器自动化编排
智能体管理AI 审批 · 技能
节点配置抽屉 · 条件路由 · 表单权限
DSL · definition_json 唯一真相
Application应用层 · gflow商业版
发起 / 待办 / 已办 / 抄送 / 统计
组织架构 · 角色岗位 · 多租户
监控 · 通知 · 审计
REST / Go API
Engine引擎层 · rulego-bpm开源 · Apache-2.0
8 类 BPM 节点startTask / userTask / ccTask / serviceTask / automation / subProcess / aiAgent / httpCall
中国式审批状态机会签 · 加签 · 退回 · 转办 · 撤回
IdentityService可插拔身份
版本化部署 · 挂起恢复
规则链执行 · 按租户分池
Rule Engine规则引擎 · RuleGo开源
规则链 DSLruleChain + metadata
原生节点switch / fork / join / inclusive / delay
automation 节点跨链调用
GORM 方言
Storage存储层
PostgreSQL / MySQL
达梦 / 人大金仓DialectProvider 扩展
6 张核心表
Redis 分布式锁多实例可选

开源与商业的分界线在引擎层:引擎层及其以下(rulego-bpm、RuleGo)Apache-2.0 开源;设计层与应用层属于 gflow 商业版。

一次审批的数据流

  1. 发起:用户在 gflow 前端提交表单,应用层调 RuntimeService.StartProcessInstanceByKey,表单数据装入流程变量 msg
  2. 路由:引擎加载 wf_process.definition_json 中的规则链 DSL,交给 RuleGo 执行池(按租户划分)。
  3. 网关switch 节点按 EL 表达式(如 msg.days > 3)匹配分支决定流向。
  4. 任务:流转到 userTask 节点时,引擎在 wf_task 写入任务行,按候选人配置解析 wf_task_assignee
  5. 办理:审批人在前端对待办做出通过/驳回/加签等动作,TaskService 完成任务并推进流程。
  6. 执行:到达 automation(调规则链)、serviceTask(调 Go 函数)、httpCall(调外部接口)节点时自动执行后续动作——入账、开权限、发通知、回写 ERP;aiAgent 节点按模型输出路由(低风险直通、高风险转人工)。
  7. 归档:流程结束的瞬间,实例与任务行迁入 wf_hi_instance / wf_hi_task,补记耗时与结论。

关键设计决策

流程定义即规则链

流程 DSL 严格遵循 RuleGo {ruleChain, metadata} 标准:表单 schema、审批人、权限写在节点 configurationadditionalInfo 中,网关、并行分支直接复用 RuleGo 原生组件。好处:与 RuleGo 生态互通,已有的规则链可以直接当流程用,automation 节点反过来也能调用任意规则链。

运行时 / 历史双轨

进行中的实例和任务只保留「办理所需的最小字段集」,归档后补记 durationend_reason 等。运行表永远小而热,历史表随便加索引做报表,两不相扰。详见数据模型

身份与引擎解耦

引擎不绑定任何用户体系。按角色/部门/主管发起的任务,办理人统一经 service.IdentityService 接口解析——生产环境注入宿主应用自己的实现即可对接真实组织架构,gflow 已内置完整实现(用户/角色/部门/岗位/多租户)。

DSL 是唯一真相

UI 只是 DSL 的视图。设计器里配的每个节点、每条分支、每个字段权限,最终都落进 definition_json;任何 UI 状态丢失后都能从 DSL 完整重建。

rulego-bpm 基于 Apache-2.0 许可开源 · gflow 商业授权