What are the biggest advantages of Camunda BPM over custom java workflow application?

Hi All,
We have group of Java developers, and none of them has good Camunda BPM knowledge.

So, when we would like to implement/automate some business process(let’s say of middle complexity, with for example 4-6 process steps, one of which is human task(for approval), another is reading data from other system using web service, and another is storing the final result in Database ), we could see 2 possible ways:

  1. custom Java development - with simple workflow functionality built-in

  2. use of light-weight BPM solution like Camunda, Activity or jBPM.

The description of the process above is only an example on which I wanted to show, that we are not talking about very complex proceses, with tens of steps…

I somehow feel, that Camunda(or similar solution) better suits our needs, but I need specific arguments to convince our developers that it would be more efficient (in long term) to learn BPM solution and use it for specific scenarios.

What would you say are features of Camunda that are very often used in implemented processes, and are hard (or would take long time) to implement by our own? So reuse them (in solution like Camunda ) would be far better,then starting from scratch ?
And I am focusing here more on the runtime engine features, then additional features like modelling and monitoring environment.

Thank you for your valuable input

While it does not address your concrete questions, the following blog post (point 3) touches on this matter: https://blog.bernd-ruecker.com/the-7-sins-of-workflow-b3641736bf5c

edit: One argument could be the time to implement processes, i.e. that using Camunda saves you and your devs time. How to demonstrate that: Have a limited time frame, let one or two of your devs try out Camunda and implement a process you have. Let them start with the BPMN getting started guide and then take it from there. Ideally they are faster with Camunda than what it takes them to build a custom workflow solution (including cross-cutting features like monitoring, assuming you need that). Of course this approach requires that your devs are open to trying out Camunda.

1 Like

First, need to ask where I can find one of those cool Swiss Army knives?

Onto the questions:

Looking at this from a pure, technical/development perspective…

BPM/Case engines and long-running business-transactions
Assuming you’re looking at a BPM or Case engine/framework to help handle business-transactions. These are the potentially very long running transactions that would normally bring your traditional transaction managers to its knees. This means you wouldn’t ask your application server and/or database to keep track of and maintaining transactions (aka ACID) for some business-transaction lasting several hours or days.

So, very good messaging systems can handle this - true. But, you’ll seriously sacrifice BPMN modelling concepts - which are now mainstream. And, this is a very serious deal…, without a representative model reflecting these long-running transaction/object instances, all their hooks, dependencies, context, and relationships, becomes a mystery. Just thinking in terms of stacking up a set of inter-dependent MQ banking/transfer contexts - how would you do this in a reasonably informative visualization w/o the aid of a BPM-engine and associated instance reporting?

see: Bernstein, Philip A., and Eric Newcomer. Principles of transaction processing. Morgan Kaufmann, 2009.

BPMN models vs UML or Visio (informal) activity diagrams?
BPMN gives you more notation features. You could use Visio (etc). But a visio-model diagram doesn’t provide the ability to magically visualize process instances (i.e. in-flight process).

Operations: Configuration Management and Life-cycle -
This is the “oh-darn” situation when you realize your production systems require an upgrade or patch. Camunda provides both methods and approach for managing this situation.

Built-in Documentation Management
Thinking of your process/case models - fully illustrated and annotated. These diagrams provide user-self-training opportunities. For example, answering the question “how do I do this business task?” Well, refer to the process-portal and browse through available model types (aka business functions).

Reporting
Who loves to write reports from scratch? I prefer to get these off-the-shelf and with pre-existing hooks into business-task and process state.

Above is to name a few… I can go on if this sparks an interest.

1 Like