GFlow v1.0.0 发布:Go 生态审批工作流引擎,中国式审批、AI 先审、批完自动办

GFlow v1.0.0 发布:Go 生态审批工作流引擎,中国式审批、AI 先审、批完自动办

GFlow Engine 是一个基于 RuleGo 的轻量级、可嵌入审批工作流引擎,今天正式发布 v1.0.0 并以 Apache-2.0 协议开源:引一个 Go 库、建 7 张表,即可为现有系统补上完整的审批能力,无需部署独立的流程中间件。 审批工作流赛道,Java 世界有 Flowable/Activiti,国产开源有 FlowLong,SaaS 有钉钉/飞书,Go 生态却长期缺位——GFlow Engine 由 RuleGo 团队打造,为 RuleGo 生态补上最后一块拼图:机器能自动执行的交给规则链,需要人拍板的交给审批流。开源引擎 + 企业版(GFlow Platform)双轨并行,长期维护   如果说传统 BPM 引擎的关键词是"重",那么 GFlow Engine 的关键词是嵌入与融合: 嵌入现有系统——Go 单库、无 JVM、无必须的外部中间件,引库建表、业务代码照旧; 规则链即流程——流程 DSL 复用 RuleGo 规则链(JSON),流程即规则、规则即流程; 批完,自动办——审批、自动化、AI 写在同一条链里编排:AI 先审、人再签、签完自动执行; 中国式审批语义完备——或签、会签(全票/任一/多数/比例/票数)、动态加签/减签、转办、委托、签收/抢单、退回、撤回、挂起/恢复、超时催办,一个不少。 一、规则链即流程:审批与自动化同链编排 这是 GFlow Engine 与其他审批引擎的根本差异。流程定义不发明新格式,直接复用 RuleGo 规则链 DSL(JSON),条件网关、并行分支等 RuleGo 原生节点直接参与编排;引擎不解析 BPMN 2.0 XML,DSL 即存储格式,所见即所得。 多数审批引擎做到"人签完"就结束了;GFlow Engine 把自动化与 AI 审批做成和审批节点平级的原生节点——审批通过后 serviceTask 调 Go 函数、automation 触发规则链(复用 RuleGo 生态上百个现成组件)、httpCall 同步拉取外部数据,审批流本身就是一个能办事的流程。 引擎扩展的 BPM 节点: 节点 type 说明 startTask 发起节点:流程起点标记 userTask 用户审批任务:或签/会签/票签、候选人(人员/角色/部门)、表单挂接、优先级、截止时间 ccTask 抄送任务:生成抄送记录并回调宿主应用,动态名单 serviceTask 服务任务:调用 Go 函数 automation 自动化节点:调用 RuleGo 规则链 aiAgent AI 智能体节点:调用智能体规则链并裁决路由输出 httpCall HTTP 调用:同步请求外部接口,响应按映射合并进流程变量(内置 SSRF 防护) subProcess 子流程:启动独立子流程实例,同步/异步可选,结束后回到主流程 startProcess 链内发起 BPM 流程实例(如定时自动发起审批)   二、完整的中国式审批语义   审批引擎的成色在语义细节上。v1.0.0 交付了一套完备的任务操作全集: 会签/票签五种阈值规则:全部通过、任一通过、多数决、百分比、固定票数,达成阈值后提前终止剩余子任务; 动态加签/减签:审批过程中临时增减办理人; 转办、改派、委派(委派归还):任务在人员间流转全程留痕; 候选组待办:任务可按人员/角色/部门发起,候选人池独立存储,待认领 → 认领 → 审批完整链路,支持抢单; 退回、撤回、挂起/恢复、超时催办:驳回策略与退回目标节点可配; 审批意见:评论独立存储,任务归档后仍可读写,审批动作与意见同一事务落库; 幂等保护:重复提交返回幂等错误,并发审批不会重复驱动同一链路。 三、选型对比:Java 三驾马车、SaaS 审批之外的新选项 选型看三件事:中国式语义是否原生、技术栈是否匹配、模型是否可控。 维度 GFlow Engine Activiti / Flowable 钉钉/飞书审批 中国式审批语义(会签/加签/退回/转办/委托/撤回) 原生一等公民 需扩展开发 支持 规则引擎联动(流程即规则链,automation 调任意链) 原生 无 无 AI 审批(aiAgent 节点) 内置 自行集成 有限 多租户 全链路 tenant_id 自行实现 平台级 嵌入现有系统 引一个 Go 库 + 7 张表 JVM 重中间件 不可嵌入 部署形态 Go 单二进制,无必须中间件 JVM 应用 SaaS 闭源 Java 引擎语义要靠扩展开发补齐,SaaS 审批不可嵌入、数据不在自己手里——GFlow Engine 把"语义原生 + Go 技术栈 + 数据自持"放在了同一个选项里。 四、为嵌入与生产而生的工程化设计 作为要嵌进你系统里、扛生产并发的库,v1.0.0 在工程化上做了完整的收敛: 多租户:全链路 tenant_id 隔离,规则链执行池按租户划分,一个租户的突发流量不拖垮其他租户;跨租户的列表、操作与归档删除一律拒绝,归属一律取操作者租户而非载荷声明; 运行时/历史双表 + 极简表设计:Activiti 全家桶动辄二三十张表,GFlow Engine 只有 7 张——任务先后关系编码在规则链连线里,不需要"转移表";候选人存原始引用、查询时经身份服务展开,没有冗余展开表。进行中数据与归档数据分离(wf_instance/wf_hi_instance、wf_task/wf_hi_task),待办、抢单、超期扫描各走各的索引,在线表永远精瘦,报表和审计查询不拖累运行时; 显式 Actor 鉴权:所有审批操作以显式 actor 身份执行,受理人/候选人 + 租户双重校验,无身份调用直接拒绝; 节点级权限:actionPermissions 可按节点禁用退回、加签等操作,与设计器联动; 可靠性:并行/包容网关断点恢复、卡死实例发现与重驱动、子流程失败沿声明边传播、全部 BPM 节点 panic 兜底转 Failure 边; 可插拔身份体系:实现 IdentityService 的 8 个方法即可对接真实用户/角色/部门(按角色、部门、直接主管、多级主管解析审批人),引擎不绑定任何用户体系; 可插拔数据库方言:内置 PostgreSQL / MySQL,单元测试跑在 SQLite 内存库上零依赖上手;通过 DialectProvider 可扩展达梦、人大金仓等国产数据库(附示例); 可插拔分布式锁:内置本地内存锁,多实例部署实现 lock.Locker 接口(如 Redis SET NX)注入即可; 事件钩子:17 个任务全生命周期事件在事务提交后异步派发,驱动站内通知等副作用; 统计开箱可用:待办/已办/超期多维计数、完成趋势、分类分布、时长明细,运行数据归档不拖累在线查询。 五、快速开始 go get github.com/rulego/gflow-engine 要求 Go 1.24+、RuleGo v0.37+。初始化数据库(幂等脚本,PostgreSQL / MySQL)后,十几行代码启动引擎: cfg := &config.Config{ Database: &config.DatabaseConfig{ Driver: "postgres", Dsn: "host=127.0.0.1 user=postgres password=postgres dbname=gflow port=5432 sslmode=disable", }, } engine, _ := service.NewWorkflowEngineBuilder(). SetName("demo"). SetConfig(cfg). SetIDGenerator(service.NewIDGenerator()). Build() _ = engine.Start(ctx) defer engine.Stop(ctx) // 一步装配全部 BPM 节点组件 _ = components.RegisterFromEngine(engine) // 部署流程定义(DSL 为 RuleGo 规则链 JSON) _, _ = engine.GetProcessService().Deploy(ctx, admin, &model.WfProcess{ ProcessKey: "leave_approval", Name: "请假审批", DefinitionJSON: leaveApprovalDSL, TenantID: "default", CreatedBy: "admin", }, true) // 发起流程实例 _, _ = engine.GetRuntimeService().StartProcessInstanceByKey(ctx, service.Actor{UserID: "emp001", UserName: "张三", TenantID: "default"}, "leave_approval", "leave_emp001_1", map[string]interface{}{"days": 5, "managerId": "mgr001", "reason": "家中事务"}, ) 审批人处理待办: _ = engine.GetTaskService().CompleteWithApproval(ctx, service.Actor{UserID: "mgr001", TenantID: "default"}, &service.ApprovalRequest{ TaskID: taskID, ApprovalResult: enums.ApprovalResultApproved, Comment: "同意", }) 完整可运行示例(单签、并行会签、顺序会签)见 examples/leave_approval——默认跑在内存 SQLite 上,零依赖直接运行;另有 httpCall + switch 组合、达梦方言接入等示例。 六、GFlow Platform:开箱即用的企业版 不想自己集成?GFlow Platform(极风工作流) 是基于 GFlow Engine 的开箱即用审批平台(商业授权,源码交付),在引擎之上补齐了企业用起来的全部东西,核心是四大自研部件:流程设计器(钉钉式树形)、表单设计器、规则链设计器(可视化编排自动化)、智能体管理(AI 审批/技能),外加发起/待办/已办/抄送/统计的前端应用、组织架构与多租户后台、监控与通知——前端、设计器、智能体、自动化全部自研,无第三方黑盒。 在线演示:http://8.134.32.225:8081(admin / admin123),业务管理员 30 分钟可配置出第一个流程。 相关链接: GitHub:https://github.com/rulego/gflow-engine Gitee:https://gitee.com/rulego/gflow-engine 官网与文档:https://gflow.rulego.cc/ 在线演示:http://8.134.32.225:8081(admin / admin123) 底层规则引擎 RuleGo:https://rulego.cc/    

查看原文
分享到:

相关推荐

R星确认GTA6每个房间都手工打造,连NPC喝什么、桌上留什么痕迹都精心设计,你看好这种细节投入吗?

1小时前

9月1日起外籍个人从外商投资企业取得股息红利不再免征个税,如何解读?会带来多大规模的税收增量?

1小时前

中国对尼泊尔第二批援助物资运抵加德满都

1小时前

中国气象局推进气象行业可信数据空间建设

1小时前