Camunda vs Flowable vs Activiti:三个同源的引擎,我是怎么选的

选型关键词:开源工作流引擎、BPMN 2.0、Java 技术栈。如果你正在给 OA、审批流、BPM 项目选引擎,这篇文章帮你省掉我踩过的坑。

三年前我接手第一个审批流项目时,在搜索引擎里翻了两天"工作流引擎对比",翻到的帖子大多是官方文档的翻译件,看完还是不知道该装哪个。后来我用 Camunda 做完了 OA 电子签章系统,又在别的项目里碰过 Flowable 和 Activiti 的存量系统,才真正搞明白这三个引擎的区别在哪、坑在哪。

先把结论放在最前面:这三个引擎是同一个家族的三兄弟,选型的关键不是"谁功能强",而是"谁还活着、谁适合你的团队"。

先理清血缘:它们本来就是一套代码

很多人以为这是三个独立团队各写各的引擎,其实不是:

  • Activiti:2010 年由 Alfresco 推出,是这一族的开山之作,BPMN 2.0 Java 引擎的代表作
  • Flowable:2016 年,Activiti 的核心创始团队出走后,直接从 Activiti 6 分叉出来创建,表结构和 API 高度兼容
  • Camunda:更早,2013 年就从 Activiti 5 分叉出去了,Camunda 团队当年还给 Activiti 做过咨询

所以你看这三个引擎的 API 会觉得眼熟,不是巧合——RuntimeService、TaskService、RepositoryService 这套接口三兄弟长得几乎一样。会其中一个,等于三个都会用,切换的学习成本很低。这也是为什么我说选型重点不在学习曲线,而在下面这些更实际的问题。

五个维度的真实对比

1. 社区活跃度与版本节奏

  • Camunda:社区热度三者最高,问题在 Google 上基本都能搜到答案。但要特别注意它的版本战略——官方火力集中在 Camunda 8(基于 Zeebe 的云原生架构),传统的 Camunda 7 社区版已进入生命周期尾声。选 Camunda 7 不是不行,而是要清醒地锁定版本,接受未来主要靠自己维护
  • Flowable:6.x 版本迭代缓慢,开源版的更新明显让位于商业版(Flowable Work)。慢有慢的好处——API 稳定,升级几乎不踩坑
  • Activiti:7.x 全面转向云原生方向(K8s、响应式),传统嵌入式引擎的用法被弱化,社区提问已经很少有人回应。不建议新项目采用

2. 建模工具

Camunda 的桌面版 Modeler 是我用过的最顺手的 BPMN 建模器,启动快、快捷键合理、属性面板信息密度高。Flowable 开源版的 Web 设计器功能相对阉割,复杂流程图维护起来比较吃力,很多团队最后用 Idea 插件画。Activiti 的设计器年代感更重一些。

3. API 与历史数据

三家的基础能力都够用,但细节体验有差异。Camunda 的历史数据查询 API(HistoryService)设计得最完善,做审批记录、流程耗时统计这类管理端功能时明显省力。Flowable 的历史 API 同样够用,毕竟同源。 Activiti 5/6 时代的老项目里,历史数据查询经常要自己写 SQL 补锅。

4. 中文资料

三者中文资料都不少(毕竟同源),Flowable 在国内的使用基数大、中文博客多。Camunda 的中文资料集中在 7.x,搜 Camunda 8 的中文实战内容会比较少。这一点对团队交接很重要——你离职后,接手的人能不能靠搜索自救。

5. 最容易被忽略的坑:版本断代

这是我最想提醒的一点。如果你现在决定"用 Camunda",一定要想清楚用的是 Camunda 7 还是 Camunda 8:

  • Camunda 7 是大家熟悉的嵌入式 Java 引擎,和 Spring Boot 深度集成,数据库表直接可见可查
  • Camunda 8 是完全不同的架构(Zeebe、消息驱动、不依赖业务数据库),API 不兼容,部署模型也不一样,社区版的能力边界和 7 也有差异

很多"Camunda 教程"没标注版本,读者按 8 的文档装、按 7 的教程写代码,最后跑不起来还不知道为什么。对绝大多数中小项目,我的建议是:要 Continuity 就锁定 Camunda 7.x 的社区版并做好长期自维护的心理准备;要长期主义就认真评估 Flowable 6.x。

我的选择逻辑,直接抄

按场景给你一张决策清单:

  • 全新 OA / 审批流 / BPM 项目:首选 Camunda 7(锁定 7.x 最新社区版)或 Flowable 6.x。两者我更偏 Camunda 7 的 API 手感和建模器,Flowable 胜在版本稳定、没有断代焦虑
  • 存量 Activiti 5/6 项目:不要急着换引擎。Activiti 6 到 Flowable 的迁移成本最低(表结构兼容),但先补集成测试再动。能不动就不动,工作流引擎的存量数据比代码值钱
  • 需要 DMN 决策表、CMMN 案例管理:Camunda 7 对这两个规范的配套最完整
  • Activiti 7 / Camunda 8:除非你的团队明确在做云原生、高并发流程编排,否则是杀鸡用牛刀且刀很难握

另外三条实战教训,和选哪个引擎无关但同样重要:版本锁死,大版本升级单独排期;历史表(ACT_HI_*)从第一天就规划清理策略,不然两年后数据库被撑爆;不要依赖流程设计器生成的内嵌表单,表单请用自己的前端方案,引擎只管流转。

尾声

这套选型判断不是我纸上谈兵——我把它完整落地在了 OA 电子签章项目里:用 Camunda 7 + Vue 从零搭了一套带电子签章的审批系统,会签、或签、驳回重提、签章效力保障这些真实需求都在里面。

整个实现过程我写成了 10 章的实战连载,每一章都有可运行的代码和踩坑记录,欢迎到OA 电子签章实战专栏阅读。选型只是起点,把流程引擎真正用进生产,细节比多得多。


我是一名全栈开发者,长期写工作流、工业软件和 AI 应用的实战内容。如果你在做类似的技术选型,欢迎留言讨论。