Can CMMN removal improve BPMN engines performance


My team’s project is trying to improve performance of the app and was wondering if disabling CMMN could increase performance of BPMN engine/execution.

Currently we have only one CMMN case and the rest of our workflows are BPMN. Our concern is if CMMN is executed by a separate flowable engine (not sure is it entirely separate from bpmn one?) perhaps it potentially causes split of CPU resources. Thus, would rewriting CMMN to BPMN and disabling CMMN entirely potentially increase BPMN execution performance?

Hey @timaslt,

Why do you think that the removal of the CMMN engine can improve the performance?

Flowable is usually not idling and using CPU resources. Yes there are some async threads that running to check if there are available jobs. However, this does not have any performance impact.

Have you done performance benchmarks and analysis to figure out what the bottlenecks are for you? Performance optimizations usually can be done by reducing number of variables and improving / parallelising things. We have some resources that you can have a look at:

Feel free to share some more specifics if you want us to look at.


Thank you for such quick response!

What about deployment time? Would you say it would take less time to deploy if removing the CMMN? As it wouldn’t need to cover CMMN DB changelog etc…?

I guess that by deployment time you mean startup time. You can optmize the startup time by not performing any DB checks.

Keep in mind that startup time has no impact on execution performance.