Camunda back up and restore
The Camunda 8.8 release introduces breaking changes for Operate and Tasklist.
If the Camunda application(s) cannot access Elasticsearch with cluster-level privileges, it is possible to run the backup of Operate and Tasklist indices (steps 2 and 4 from the backup procedure below) as a standalone application separate from the main application (see standalone backup application).
Use the backup feature to back up and restore your Camunda 8 Self-Managed components and cluster.
About this guide
This guide covers how to back up and restore your Camunda 8 Self-Managed components and cluster. You should automate the procedures in this guide, choosing tools that fulfil the requirements of your organization.
-
Regularly back up the state of your Zeebe, Web Applications (Operate, Tasklist), and Optimize components without any downtime. You can also back up and restore Web Modeler data.
-
Restore a cluster from a backup if any failures occur that cause data loss.
Prerequisites
Set up a snapshot repository in the secondary datastore and configure component backup storage.
Create a backup
Create a backup. This involves backing up the WebApps and the Zeebe Cluster.
Restore a backup
Restore a backup. This involves restoring Elasticsearch/OpenSearch and the Zeebe Cluster.
Why you should use backup and restore
- Soft pause exporting in Zeebe. See the Zeebe management API.
- Trigger a backup
x
of the web applications. See how to take a web application backup. - Trigger a backup
x
of Optimize. See how to take an Optimize backup - Wait until the backup
x
of web applications is complete. See how to monitor a web application backup. - Wait until the backup
x
of Optimize is complete. See how to monitor an Optimize backup. - Take a backup
x
of the exported Zeebe records in Elasticsearch using the Elasticsearch Snapshots API.
For example, using Elasticsearch / OpenSearch’s native snapshot capabilities directly does not produce a coherent backup. This is because Operate, Tasklist, and Optimize each manage their data across multiple indices, which cannot be reliably captured together without involvement from the components that understand their structure. For this reason, backups must be initiated through each component individually, using their built-in backup functionality.
The same principle applies to Zeebe. Backups must be scheduled through Zeebe to ensure a consistent snapshot of all partition data. Simply taking a disk-level snapshot of each Zeebe broker is not enough, as the brokers operate independently and data may not be aligned across them at the time of the snapshot. Since disk-level backups are not synchronized, this can lead to inconsistencies and invalid recovery points.
A complete backup of a Camunda 8 cluster includes:
- Backups of Web Applications (Operate, Tasklist), and Optimize (triggered through their APIs).
- Backup of indices from Elasticsearch/OpenSearch containing exported Zeebe records.
- A Zeebe broker partition backup (triggered through its API).
- Wait until the backup
x
of the exported Zeebe records is complete before proceeding. - Take a backup
x
of Zeebe. See how to take a Zeebe backup. - Wait until the backup
x
of Zeebe is completed before proceeding. See how to monitor a Zeebe backup. - Resume exporting in Zeebe. See Zeebe management API. Because the data across these systems is interdependent, all components must be backed up as part of the same backup window. Backups taken independently at different times may not align and could result in an unreliable restore point.
To ensure a consistent backup, you must follow the process outlined in this guide. Deviating from it can result in undetected data loss, as there is no reliable method to verify cross-component data integrity after backup.
Following the documented procedure results in a hot backup, meaning that:
- Zeebe continues to process and export data.
- Web Applications (Operate, Tasklist), and Optimize remain fully operational during the backup process.
This ensures high availability while preserving the integrity of the data snapshot.
Prerequisites
The following prerequisites are required before you can create and restore backups:
Prerequisite | Description |
---|---|
Set up a snapshot repository in the secondary datastore. | Depending on the choice of secondary datastore, you must configure the following on the datastore itself: Note: For Elasticsearch configuration with the Camunda Helm chart on AWS EKS using IRSA, see configuration example. |
Configure component backup storage. | Configure the backup storage for the components. This is also important for restoring a backup. |
You should keep the backup storage of the components configured at all times to ease the backup and restore process and avoid unnecessary restarts.
You can use the same backup storage location for both Elasticsearch / OpenSearch snapshots and Zeebe partition backups, as long as different paths are configured:
- Set the
basePath
for Zeebe. - Set the
base_path
for Elasticsearch / OpenSearch.
- Start Zeebe, Operate, Tasklist, and Optimize. (To ensure templates/aliases etc. are created)
- Confirm proper configuration (such as shards, replicas count, etc.)
- Stop Operate, Tasklist, and Optimize.
- Delete all indices.
- Restore the state of the web applications and Optimize.
- Restore
zeebe-records*
indices from Elasticsearch snapshot. - Delete the data directory of all Zeebe brokers
- Restore Zeebe.
- Start Zeebe, Operate, Tasklist, and Optimize.