Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Turbo is a light-weight flow engine framework, support BPMN2.0. 一款轻量级流程引擎服务框架,可作为底层服务支持各类流程设计、低代码设计、工作流、审批流、服务编排等场景
| Date | Stars |
|---|---|
| 2026-07-24 | 1211 |
| 2026-07-25 | 1211 |
| 2026-07-28 | 1211 |
| 2026-07-30 | 1211 |
| 2026-08-06 | 1212 |
Today
+1 stars today
This week
+1 stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.08%/day
# Turbo 简介
Turbo是一款Java实现的轻量级流程引擎,是公司内多个低代码平台的核心后端服务。
# 特性
1. 提供“定义流程,并根据流程定义,执行流程”的核心能力
2. 轻量级的库表操作
3. 支持流程回滚操作
# 核心能力
我们提供了以下核心能力:
1. 流程定义:保存流程基本信息和流程图模型
2. 流程部署:校验和部署流程模型,记录流程模型快照。部署后流程可以执行
3. 流程执行:从开始节点开始执行,到用户节点挂起或结束节点结束
4. 流程提交:提交指定的用户任务,到下一个用户节点挂起或者结束节点结束
5. 流程回滚:从当前用户节点开始回滚,回滚至上一个用户节点或者开始节点
6. 执行轨迹追溯:查看流程实例的执行轨迹,可用于快照
# 为什么选择Turbo
### 1. 什么时候使用Turbo
业务支持**模块化**拆分、**有序**执行,并且有**多变**的编排诉求时,可以考虑采用Turbo作为底层引擎,同时可以配合使用 [logicflow](https://github.com/didi/LogicFlow) 进行可视化配置。
<a name="demo1">**案例1:某团购售后流程**</a>
用户A在订单列表中选择订单,判断订单状态,如果状态为未发货,则直接跳转至退款申请页,如果状态为待收货则提示不支持售后,跳转至物流信息页,如果状态为已收货,则跳转至售后页填写售后信息并提交。

<a name="demo2">**案例2:请假审批流程**</a>
员工A输入请假天数,判断请假天数是否大于等于3天,是的话由间接领导审批,否的话则由直属领导批准。

### 2. Turbo有什么不同
谈到流程引擎,当前市面上大部分是**Activiti**、**Flowable**、**Camunda**等面向OA场景,功能强大且有比较完整的生态的工作流引擎(平台),同时因为OA复杂的场景,库表关联操作非常多,但是对于其它业务场景,引擎运维以及学习成本较高,性能不可避免有一定损失,不适用于C端场景。
同时还有部分专注于纯内存执行、无状态的流程引擎,比如阿里的**Compileflow**,这类引擎中断后不可重入,不适用于人机交互场景,适用于执行业务规则。举例:N个人去ktv唱歌,每人唱首歌,ktv消费原价为30元/人,如果总价超过300打九折,小于300按原价付款。
Turbo的定位是兼容BPMN2.0的轻量级流程引擎(而非平台),支持可重入交互,主要负责提供稳定而高效的核心能力:**流程定义**、**流程驱动**,而节点的具体执行由接入方实现,可以快速搭建面向各种场景的流程编排类系统或产品,接入简单,支持灵活扩展,引擎扩展能力通过插件或组件的形式进行补充,支持按需使用,大大降低了用户的运维以及学习成本。
### 3. 开源流程引擎对比
<table>
<tr>
<td></td>
<td></td>
<td>Activiti</td>
<td>Camunda</td>
<td>Compileflow</td>
<td>turbo</td>
</tr>
<tr>
<td></td>
<td>核心表量</td>
<td>28</td>
<td>22</td>
<td>0</td>
<td>5</td>
</tr>
<tr>
<td rowspan = "3"> 特性 </td>
<td>中断可重入</td>
<td>√</td>
<td>√</td>
<td>×</td>
<td>√</td>
</tr>
<tr>
<td>支持回滚</td>
<td>×</td>
<td>√</td>
<td>×</td>
<td>√</td>
</tr>
<tr>
<td>运行模式</td>
<td>独立运行和内嵌</td>
<td>独立运行和内嵌</td>
<td>内嵌</td>
<td>内嵌</td>
</tr>
<tr>
<td rowspan = "3">兼容性</td>
<td>流程格式</td>
<td>BPMN2.0、XPDL、PDL</td>
<td>BPMN2.0、XPDL、PDL</td>
<td>BPMN2.0</td>
<td>BPMN2.0</td>
</tr>
<tr>
<td>支持脚本</td>
<td>JUEL、groovy</td>
<td>python、ruby、groovy、JUEL</td>
<td>QlExpress</td>
<td>groovy</td>
</tr>
<tr>
<td>支持数据库</td>
<td>Oracle、SQL Server、MySQL</td>
<td>Oracle、SQL Server、MySQL、postgre</td>
<td>无</td>
<td>MySQL</td>
</tr>
</table>
# 关键模型
### 1 流程 (Flow)
定义了起点、终点以及起点到终点需要执行的活动、执行路径、执行策略。
### 2 流程实例 (FlowInstance)
一个流程可能会被多次执行,比如同一个场景的审批流是一个流程,每次有人提交审批这个流程都会被执行一次。流程每执行一次,对应一个流程实例。
### 3 流程元素 (FlowElement)
*考虑兼容性问题,流程元素设计参考了BPMN规范。
构成流程中的各种元素通称为流程元素 (FlowElement),包括节点 (FlowNode)和顺序流 (SequenceFlow)。
#### 3.1 节点 (FlowNode)
##### 3.1.1 事件节点 (EventNode)
例如:
* 开始节点 (StartEvent):标识流程的开始;
* 结束节点 (EndEvent):标识流程的结束;
##### 3.1.2 活动节点 (ActivityNode)
例如:
* 任务 (Task):需要处理的节点,例如:
* 用户任务节点 (UserTask):使用方执行任务的节点,比如需要用户提交信息;
* 系统任务节点 (ServiceTask):系统内部自行执行任务的节点;
* 内嵌子流程 (SubProcess):将流程作为另一个流程的节点来处理;
* 调用子流程 (CallActivity):与内嵌子流程不同的是,调用子流程拥有独立的模型存储,会产生新的流程实例
##### 3.1.3 网关节点 (Gateway)
与SequenceFlow配合使用,用于描述SequenceFlow的执行策略。
例如:
* 排他网关 (ExclusiveGateway):同一时刻的同一个实例中,根据指定输入,有且只有一条路径(SequenceFlow)被命中;
#### 3.2 顺序流 (SequenceFlow)
记录节点之间的执行顺序,可以配置执行的条件conditions(比如用户点击了“同意”作为输入),conditions只有在与网关节点Gateway配合使用时生效,由Gateway决定conditions的执行策略。
# 快速开始
## 1.运行环境
1. JDK21
2. mysql
## 2.开发环境
1. JDK21
2. mysql
3. maven 3.1+
4. IntelliJ IDEA
## maven
流程引擎核心功能集合
### JDK 1.8 版本
JDK 1.8 支持的最后版本是 1.2.0 版本,后续版本除非出现重大 bug 修复,后续不再进行更新。
```xml
<dependency>
<groupId>com.didiglobal.turbo</groupId>
<artifactId>engine</artifactId>
<version>1.2.0</version>
</dependency>
```
开发demo,非必须依赖
```xml
<dependency>
<groupId>com.didiglobal.turbo</groupId>
<artifactId>Excerpt of 7,665 characters
Read on GitHub69
20
19
9
6
3
3
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:1dcb10baa01762f1, topic:workflow, topic:low-code