Data base Model - BPMN Deployment


I am deploying a BPMN flow - can you share the database table it gets updated on Deployment, On running the BPMN tasks, Start Step, calling external task and End Step.

Hello my friend!

There are SEVERAL tables updated… perhaps it would be a good idea for you to follow real time to learn more… but I will give some examples of tables updated during the process:

Regarding the deployment stage:

  • act_re_deployment = stores data regarding the deployment;
  • act_re_procdef = stores process definition information;

Regarding the start stage:

  • act_ru_execution = referring to the executing instance;

Regarding the task execution stage:

  • act_ru_task = referring to tasks assigned to users or groups;
  • act_ru_variable = referring to process variables;

Regarding the execution stage of external tasks:

  • act_ru_ext_task = referring to external tasks;

Regarding the completion steps:

  • act_hi_procinst = referring to the history of completed instances;
  • act_hi_taskinst = referring to the history of completed tasks;

In addition to these, other tables are updated during the processes… but these I believe are the main ones!

Remembering that the history tables (those that contain “_hi_”) you can disable or configure so that they do not store unnecessary data if you wish… as these tables and the metrics table are the fastest growing in the Camunda database!

Below I’m leaving a printout of the database of one of my Camunda projects in HLG, so you can check the number of tables hehehehe! :grin:

NOTE: All tables did not fit in a single print!

Hope this helps!

William Robert Alves


Hi @WilliamR.Alves

Question 1: How to disable history tables
Question 2: act_re_deployment - Do we need to maintain System columns created and modified, do we need to follow the same naming convention id_, name_
Question 3: How does the cammunda engine insert id_, Source_ Column
Question 4: act_re_procdef - Significance of has_start_from_key ,Version_tag
Question 5 : When I invoke BMN flow act_ru_execution table is not populated with Records - what could be the reason but I can see in act_hi_procinst history Table -can you explain

Answer question 1:

To disable the history and metrics tables in Camunda, you must place the configuration below in your, in my example, I am disabling both.


After this, you must set the historyLevel to “0” in the act_ge_property table.
Don’t forget to do this, otherwise it won’t work.


Below are some links to the official doc if you want to better understand the other history levels.

Answer question 2:
The created_ and modified_ columns are system columns used to record when the deployment was created and modified. You generally don’t need to worry about them or change them. The id_ and name_ naming convention is common in Camunda and follows the database standard.

Answer question 3:
id_ is automatically generated by the database and the source_ column is filled in at the time of deploying your process, saying whether you deployed it through Camunda Modeler (using the current diagram deploy button), or whether the deployment was done in conjunction with your spring application, for example when you deploy your java code and your BPMN through a JAR. When you deploy using the modeler, this column is filled in with “camunda modeler”, and when the entire application is deployed with BPMN, it is filled in as “process application”.

Answer question 4:
hahahaha is “has_start_FORM_key” not “FROM_key”, our vision deceives us sometimes hehehe.
has_start_form_key: Indicates whether the process has a start form associated with it. If it is set to “1”, it means there is a start form associated with the process; otherwise it will be “0”.
version_tag: Can be used to tag or identify different versions of the process. It is an optional naming convention that you can use to categorize or name process versions.
is defined when deploying your process definition when you fill in this “version tag” field in the print below in camunda modeler.


Answer question 5:
The act_ru_execution table is used to keep records at runtime of execution instances in progress, that is, it will only be recorded while there are instances running in your process. (ru = runtime)

The act_hi_procinst (hi = history) table is used to maintain historical records. In other words, if you need to search for update histories of your process instance, it is in this table that you will search.

This was without a doubt the longest question I’ve ever answered here ahhahahaa! :hot_face:
Hope this helps! :pray: :rocket: :sweat_smile:

William Robert Alves

Thanks so much @WilliamR.Alves