Understanding Camunda's architecture

Hello and happy new year to all,

I have a basic question regarding to the architecture of the Camunda BPM ecosystem.

I would like to gain an insight into the way that the Database (illustrated with red circle below) is utilized in the platform lifecycle.

image

What is it supposed to? Can you please describe its role with two-three sentences?

Thank you in advance.

It stores process data and state. And some other things.

@smith_Johnson reger this page:

1 Like

@fml2 Hello, thanks for your reply.

β€œIt stores process data and state.” Does this mean that all process variable data are saved in the database?

@aravindhrs Hello, thanks for your reply.

When the application server is running, how can I have access to the database and see all the data saved there?

@smith_Johnson Runtime data are stored in ACT_RU_* tables. History data are stored in ACT_HI_* tables if history is enabled.

  • ACT_RU_* : RU stands for runtime. These are the runtime tables that contain the runtime data of process instances, user tasks, variables, jobs, etc. The engine only stores the runtime data during process instance execution and removes the records when a process instance ends. This keeps the runtime tables small and fast.

  • ACT_HI_* : HI stands for history. These are the tables that contain historical data such as past process instances, variables, tasks, etc.

Additionally you can view the processes and tasks in the Camunda Webapps (Cockpit, tasklist) and Optimize (End-to-End Process Automation Monitoring and Reporting)

1 Like

Are you using in-memory H2 database?

I am using in-memory H2 db.

Hi @smith_Johnson,

H2 offers a web browser interface where you can enter SQL statements. https://www.h2database.com/html/quickstart.html#h2_console

In Spring boot, you can enable it by adding

spring.h2.console.enabled: true

in the application.yml and access it with http://localhost:8080/h2-console.

Hope this helps, Ingo

1 Like

your jdbc url should be like:

jdbc:h2:file:/data/camundadb

Configuration in properties/yaml config:

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.settings.trace=false
spring.h2.console.settings.web-allow-others=false

then you can access the db via http://localhost:8080/h2-console from the browser.

1 Like

I do not use a Srping boot application, but instead I use an Apache Tomcat application server and a shared process engine architecture.
Does, what you mentioned above, change?

Your process application not built using spring?

Exactly. I have not used Spring for my apps. All my process applications are built using Maven archetypes.

Hi @smith_Johnson,

even better

Here the h2-console is embedded and directly available at http://localhost:8080/h2/h2.

In the Login screen, add the jdbc connection from the server.xml, found in the conf directory of the server.

Hope this helps, Ingo

1 Like

@Ingo_Richtsmeier, @aravindhrs
Thank you both for your help.
Now I can access the H2 db.