How is the BPMN model analyzed?

I want to know how the BPMN XML file, which includes nodes and edges, is mapped in Camunda 8 (for example, the precedence and order of tasks in a process). Where is this information stored?

I have searched the Elasticsearch index, but apart from the “operate-process” index, which includes the XML file and nodes, I couldn’t find anything else.

Currently, my requirement is to be able to retrieve the list of tasks for a process with a specific version, including all types such as user tasks and service tasks, along with their order.

please help me.

You can use the API to find out the flow of process instance:

Hi, and welcome the to user forums!

That’s not really possible, because not all tasks will be created for a defined flow if you have any gateways. This means that you are only considering the “happy-path” of a process. BPMN is about modeling the entire process, including the exceptional passes.

1 Like

Thank you for your welcome

I think that when a version of a process is sent to the Zeebe engine, it analyzes the XML file and stores it somewhere, but I cannot find it, and it might be created in-memory.

I suspect there is an overall analysis of each version of the XML process file, and the engine determines the movement between different paths based on it.

Could you please guide me on how the Zeebe engine analyzes the XML process file and whether it stores it in a database or keeps it in-memory?

I can’t really speak to how Zeebe stores the process definition internally.

The process definitions are stored (somehow) in a RocksDB that is not accessible outside of Zeebe.

When an activity is completed, all outgoing flows are evaluated, and any gateways are evaluated. If this creates additional activities then those will be slated for execution.