Run your first BPMN process with Camunda 8
Run your first fully-automated BPMN process locally with Camunda 8.
About
In this guide, you’ll deploy and run a Rocket Launch BPMN process where you play mission control: you provide a fuelLevel variable, and the Camunda 8 engine runs the launch sequence end-to-end:
- Start the launch sequence.
- Run a pre-flight check.
- Decide whether systems are GO or NO-GO.
- If GO: plot the destination via a DMN decision.
- Generate a mission report and complete the mission.
- If NO-GO: cancel the mission and end the process.
After completing this guide, you will have a BPMN process running locally in Camunda 8 and understand how basic concepts, such as variables, DMN, and FEEL expressions, work together in an automated BPMN workflow.
Prerequisites
- JDK 21-25: Required by Camunda 8 Run to start the engine locally.
Step 1: Download the Camunda 8 starter package
Download the Camunda 8 starter package from the following website: https://developers.camunda.com/install-camunda-8/
The starter package includes the following components:
- Camunda 8 Run: A simplified, single-application Camunda configuration for a local development environment.
- Camunda Modeler: An application for modeling BPMN, DMN, and Forms.
- Getting started project: Example projects including the Rocket Launch process used in this guide.
Step 2: Deploy and run your model
- Unzip the Camunda 8 starter package.
- Start Camunda 8 Run by changing to its directory and running the following command based on your OS:
- Mac OS + Linux
- Windows
./camunda-start.sh
.\camunda-start.bat
- Open Camunda Modeler from the starter package.
- Click File, then Open File to open the process model
camunda-8-get-started/1-rocket-launch/rocket-launch.bpmn. - Deploy your model by clicking the rocket icon in the bottom toolbar. You can use the pre-configured c8run (local) connection and click Deploy. This automatically deploys all resources in the project, including the DMN decision table.
- Click Play in the bottom toolbar to start a new process instance.
- Run your first model instance by setting the input mission variables. For example:
{ "missionName": "Odyssey", "fuelLevel": 95 }
Step 3: Explore your process in Operate
- Navigate to Operate at http://localhost:8080/operate and log in using the
demo/democredentials. - Find the Rocket Launch process and click your running instance.
Data needs to sync to Operate, so your process instance may not be visible immediately.
Watch the timer
Your process instance pauses at the Countdown T-10 task for 10 seconds. Open the instance in Operate and watch the token move through the countdown in real time.
Inspect variables
Click a completed instance in Operate and open the Variables panel. You can see the variables the process created, such as destination, fuelAfterBurn, and missionResult.
Compare the variables between a successful launch and a canceled mission to see how the process logic sets different values.
Step 4: Try different scenarios
Start additional process instances in Modeler with different fuelLevel values.
Here’s what happens based on your fuelLevel input:
fuelLevel | What happens |
|---|---|
>= 90 | Launch proceeds — destination set to Venus (5 experiments) |
76 – 89 | Launch proceeds — destination set to Mars (5 experiments) |
75 | Launch proceeds — destination set to Mars (3 experiments) |
50 – 74 | Launch proceeds — destination set to Moon (3 experiments) |
< 50 | Mission canceled — the process ends on the cancellation path |
Go to Operate to compare how each process instance takes a different path.
Step 5: Understand how it works
The process uses no external code. All logic is expressed using FEEL expressions in script tasks and a DMN decision table.
| Task | FEEL expression | Output variable |
|---|---|---|
| Pre-flight check | if fuelLevel >= 50 then "ALL SYSTEMS GO" else ... (sets status to cancel) | systemStatus |
| Cancel mission | "Mission " + missionName + " scrubbed — not enough fuel (" + string(fuelLevel) + "%)" | missionResult |
| Plot destination | DMN table: >= 90 → Venus, >= 75 → Mars, >= 50 → Moon | destination |
| Burn stage 1 | fuelLevel - 25 | fuelAfterBurn |
| Run experiments | if fuelLevel > 75 then 5 else 3 | experimentsRun |
| Mission report | "Crew " + missionName + " reached " + destination + "! Fuel: " + string(fuelAfterBurn) + "%. Experiments: " + string(experimentsRun) | missionResult |
Step 6: Clean up
Navigate back to Operate and verify that your process instances have completed successfully (or were canceled, depending on the fuel level).
You can now stop your Camunda 8 Run local environment by executing the following command based on your OS:
- Mac OS + Linux
- Windows
./camunda-stop.sh
.\camunda-stop.bat
Next steps
Now that you've run your first BPMN process in Camunda 8, explore more of the platform: