链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

go-workflow/go-workflow:go版本极简工作流引擎

go - workflow是一个超轻量级的工作流引擎,基本架构与Activiti工作流相似且更精简。它是工作流微服务,将无关流程数据解耦,用json数组生成流程定义,有独特的数据库设计,包含流程定义、实例、执行流等表,还有流程资源存储、启动、任务审批等操作相关的功能,是一款很有潜...

访问官网 →

【Github】项目名:go – workflow/go – workflow:go版本极简工作流引擎

一、项目简介

go – workflow是一个超轻量级的工作流引擎,基本架构与Activiti工作流有些相似,但更精简、更轻量,是一个工作流微服务。它具有一些独特的特性,例如将无关流程的数据(如用户、用户组等信息)从服务中解耦出去,仅记录流程的流转,并且使用json数组替代bpmn来生成流程定义以简化流程定义的生成。其前端流程生成工具为https://github.com/go – workflow/go – workflow – UI,还有具体案例详见example.md。

二、项目框架

1. 数据库设计

  • 流程定义表procdef保存流程配置,有name、version、resource、company等主要字段。
  • 流程实例表proc_inst保存流程实例,包含procDefID、title等主要字段。
  • 执行流表execution保存执行流,有procInstID、procDefID等主要字段。
  • 关系表identitylink保存任务的候选用户组等信息,包括type、group等主要字段。
  • 任务表task保存任务,有nodeID、step等主要字段。
  • 历史数据表包括execution_history等,每隔20秒将已结束流程数据自动迁移过来。

2. 流程的操作

  • 存储流程资源:启动微服务后,可通过http://localhost:8080/workflow/procdef/save进行存储。
  • 启动流程:通过调用StartProcessInstanceByID方法启动流程实例,涉及获取流程定义、启动流程实例、生成执行流等一系列操作。
  • 任务审批:调用Complete方法执行任务审批,涉及更新任务等操作;调用WithDrawTask方法执行任务撤回。

三、项目总结

go – workflow/go – workflow这个项目为需要工作流引擎的场景提供了一个轻量级的解决方案。它在架构设计、数据处理以及流程操作等方面都有自己的特色。希望大家能积极留言,一起讨论这个项目的更多可能性。

项目地址

GitHub链接直达