工作流框架还是比较多的,按照语言分类的话,有
Java: jBPM、Activiti、SWF
PHP: Tpflow、PHPworkflow
Go: Cadence(Cadence由Uber开发并开源,Maxim Fateev是Cadence的主架构师)、Temporal(Maxim Fateev为了推广Workflow编排引擎的商业化,另立门户创建了Temporal)、Fastflow
特点 | 缺点 | 可视化界面 | 语言 | 开源 | |
---|---|---|---|---|---|
|
| 无 | java | ||
Activiti |
|
| 无 | java | 开源,star: 9.3k,近2天有更新 |
liteflow |
| 图形化界面 | java | 开源,star: 1.7k,近1周有更新 | |
n8n(工作流) docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n docker.n8n.io/n8nio/n8n |
|
| 图形化界面,关联节点,事件触发 | js | 开源,star: 29.1k,近1天有更新 |
Cadence |
|
| 图形化界面,可以清楚的知道上下文 | golang | 开源,star: 6.8k,近1天有更新 |
Fastflow |
| 无 | golang | 开源,star: 108,近三月有更新 | |
|
| java | 开源版本维护滞留 | ||
Camunda |
|
|
如何选型
针对我们自身的开发效率、支撑能力、稳定性
-
多异步事件
-
服务可靠性低
-
流程长繁杂
-
复杂状态
工作流通常适用于,有状态的、异步、长时间执行等特性的业务场景,比较典型的场景包括
-
视频、音频、图片处理工作流
-
订单、审批流程
-
数据处理流水线
-
自动化运维