How to split business processes?


#1

Hello,

I’m have planed to use camunda in a project for a long time (since I had my first training at camunda) because my colleges from my former company are excited of camunda.

My question now is how to split a business process correctly into executable parts, so that it is possible to visualize the process still as good as possible.

To describe the process to split I have an example: It is a process where you can input a bunch of recipes and the process analyzes them and orders the ingredients.
There are two servers (or two clusters of servers) involved: The first one takes the receipt or the bunch of receipts, stores them and returns a list of receipts as response. The second one processes each receipt, calculates the ingredients, orders each ingredient and and when all ingredients are arrived, the receipt is handed over to the kitchen (end of the process).
I would prefer to see this whole business process in a view. But on the other side there is the need to execute one part of the process on one server/cluster and the other part on the other server/cluster. How should this be modeled?
And the second question is: What about the subprocesses of each ingredient?


#2

Nobody who could help?


#3

I think, you are talking about two different processes with different functions on two different servers/clusters. You can start execution the second process at any step of the first process by REST services.


#4

Thanks for the reply.

From the business view it is only one process. From the technical view the process is executed partially on one server, partially on the other.


#5

If its an microservice architecture, each service bounded by single business context. So you can re-design your monolith bpmn to bounded business context by splitting the bpmn according to the microservice business logic.

If required create parent process and use call activity/sub process to execute both process.


#6

I had the opinion, that the idea of camunda was to make business processes executable. And from business view (and that’s also the way I would like to show it in cockpit) it is only one process.

Based on this it is not a “you can re-design”, it is a “you must slice your business process because of technical needs”.

That’s not the solution I wanted to hear, but thank you for confirming this. I thought perhaps I had missed something.