Does Camunda store processes definitions in the database?

We would need a clarification about how the engine store the process definitions:

  • At a certain time T we deploy a web application containing a certain process
  • At a certain time T+1 we undeploy that web application and we deploy a new web application containing the same process modified.

Do we need to include the old version of the process as well or will this be handled by the engine?

Hi @Edmondo_Porcu,

The process engine stores the XML in the database until you delete it (either via API, or if you set the property isDeleteUponUndeploy in your processes.xml deployment descriptor, see https://docs.camunda.org/manual/7.5/reference/deployment-descriptors/tags/process-archive/#configuration-properties).

By default, if your application contains a new version of a process (that means, its id in BPMN XML has not changed), the process engine detects this and deducts that this application is also responsible for executing the previous version. For an in-depth explanation, see https://docs.camunda.org/manual/7.5/user-guide/process-applications/the-processes-xml-deployment-descriptor/#process-application-deployment

Cheers,
Thorben

1 Like

Hi @thorben @Edmondo_Porcu ,
If process definition is containing java delegates and task forms , while deployment XML of process definition will store in database Does Java delegates and task forms also get store in DB with XML.
Thanks,
Avinash

Hi @Avinash_Rawat,

no, JavaDelegates won’t be stored in the database.

Hope this helps, Ingo

1 Like

@Ingo_Richtsmeier what about task forms ?

Hi @Avinash_Rawat,

it depends on the form type:
Camunda Forms can be deployed to the database and picked up from there: User Task Forms | docs.camunda.org. But they don’t have to.

The other form types are loaded from the resources or generated in the engine.

Hope this helps, Ingo

2 Likes

Thanks @Ingo_Richtsmeier got it