Forum · Slack · Documentation · Roadmap
Operaton is a native BPMN 2.0 process engine that runs inside the Java Virtual Machine. Born from the Camunda 7 community edition, Operaton continues to evolve and modernize the platform as a truly community-driven project.
- Proven — Evolved from the Camunda 7 codebase, with over a decade of production use by thousands of companies worldwide.
- Embeddable — Runs inside any Java application. Integrates with Spring Boot, Quarkus, and Jakarta EE.
- Full Stack — Process engine, REST API, and web apps (Cockpit, Tasklist, Admin) for the complete BPM lifecycle.
- Community-Driven Open Source — Apache License 2.0. No single-vendor control, no open-core model — built collaboratively by contributors from multiple companies.
- Compatible — Fully compatible REST API, database schema, and deployable models. Migrate from Camunda 7 using the OpenRewrite migration tool.
- Extensible — Vital ecosystem of plugins and connectors.
- Multi-Database — Supports H2, PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, and DB2.
- AI-Ready — Integrate with AI assistants and LLMs via the Model Context Protocol (MCP) server.
- Operaton is a reliable, extensible BPM platform for mission-critical business processes.
- Evolved and modernized by an active community of BPM experts and software engineers from multiple companies worldwide.
- Easily embeddable inside your Java applications, giving you full control over your BPM platform.
- Deployable on-premise, on cloud providers, or on application servers.
- Fully compatible REST API, database schema, and deployable BPMN/DMN models — migrate from Camunda 7 with ease.
- A truly community-driven Open Source project under the Apache License 2.0 — no open-core model, no commercial editions.
- Professional support and consulting services are available from multiple service providers.
Run Operaton with Docker:
docker run -d --name operaton -p 8080:8080 operaton/operaton:latestThen open http://localhost:8080 and log in with demo / demo.
➜ See the Getting Started Guide for detailed setup instructions.
Choose your integration approach:
Spring Boot
Add the Operaton BOM & Spring Boot Starter:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.operaton.bpm</groupId>
<artifactId>operaton-bom</artifactId>
<version>2.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.operaton.bpm.springboot</groupId>
<artifactId>operaton-bpm-spring-boot-starter</artifactId>
</dependency>
</dependencies>Then configure in application.properties:
operaton.bpm.database.schema-update=true
operaton.bpm.history-level=autoQuarkus
Add the Operaton Quarkus Extension:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.operaton.bpm</groupId>
<artifactId>operaton-bom</artifactId>
<version>2.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.operaton.bpm.quarkus</groupId>
<artifactId>operaton-bpm-quarkus-engine</artifactId>
</dependency>
</dependencies>Configure in application.properties:
operaton.history.level=activity
operaton.database.schema-update=trueEmbedded Engine
Add the core process engine only:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.operaton.bpm</groupId>
<artifactId>operaton-bom</artifactId>
<version>2.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.operaton.bpm</groupId>
<artifactId>operaton-engine</artifactId>
</dependency>
</dependencies>Then create the engine in your application:
ProcessEngineConfiguration configuration = new StandaloneInMemProcessEngineConfiguration()
.setHistory(HistoryLevel.HISTORY_LEVEL_ACTIVITY.getName())
.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
ProcessEngine engine = configuration.buildProcessEngine();
RuntimeService runtimeService = engine.getRuntimeService();Add a database driver dependency for your chosen database (e.g. H2, PostgreSQL, MySQL, Oracle, SQL Server, DB2).
Example with H2:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>Choose your integration approach:
Spring Boot
Add to build.gradle:
dependencyManagement {
imports {
mavenBom 'org.operaton.bpm:operaton-bom:2.1.0'
}
}
dependencies {
implementation 'org.operaton.bpm.springboot:operaton-spring-boot-starter'
}Configure in application.yml or application.properties (see Maven > Spring Boot section above).
Quarkus
Add to build.gradle:
dependencyManagement {
imports {
mavenBom 'org.operaton.quarkus:operaton-quarkus-bom:2.1.0'
}
}
dependencies {
implementation 'org.operaton.bpm.quarkus:operaton-bpm-quarkus-engine'
}Configure in application.properties (see Maven > Quarkus section above).
Embedded Engine
Add to build.gradle:
dependencyManagement {
imports {
mavenBom 'org.operaton.bpm:operaton-bom:2.1.0'
}
}
dependencies {
implementation 'org.operaton.bpm:operaton-engine'
}Then create the engine (see Maven > Embedded Engine section above) and add a database driver.
For snapshot artifacts from the development branch, add the Sonatype Snapshots repository.
- Operaton Engine — The core component responsible for executing BPMN 2.0 processes.
- REST API — Remote access to running processes.
- Spring, CDI, Quarkus Integration — Programming model integration for Java applications interacting with running processes.
- Operaton Cockpit — Web application for process operations and monitoring.
- Operaton Admin — Web application for managing users, groups, and access permissions.
- Operaton Tasklist — Web application for managing and completing user tasks in the context of processes.
Operaton is fully compatible with your existing BPMN, DMN models and Forms created for Camunda 7.
| Project | Description |
|---|---|
| Web Apps | Next-generation web applications for Operaton |
| Migration Tool | OpenRewrite recipe to migrate from Camunda 7 |
| Docker Images | Official Docker images (DockerHub) |
| Helm Charts | Kubernetes deployment via Helm |
| MCP Server | Model Context Protocol server for AI integration |
| Keycloak Plugin | Keycloak identity provider integration |
- 🌐 Website
- 📖 Documentation
- 💡 Frequently Asked Questions
- 🗺️ Roadmap
- 💬 Forum
- 📡 Slack
- 🐛 Issue Tracker
- 🏁 Good First Issues
- 📘 REST API Reference
- 📗 Javadoc
Prerequisites: JDK 17 or newer (tested on 17, 21, 25)
./mvnw clean installFor a faster build, skip tests and frontend:
./mvnw clean install -DskipTests -Dskip.frontend.build=trueSee CONTRIBUTING.md for contribution guidelines, TESTING.md for testing tips, and Architectural Decision Records for design context.
The source files in this repository are made available under the Apache License Version 2.0.
Operaton uses and includes third-party dependencies published under various licenses. By downloading and using Operaton artifacts, you agree to their terms and conditions. Refer to LICENSE_BOOK.md in distribution archives for an overview of third-party libraries and particularly important third-party licenses we want to make you aware of.
Please see our security policy for how to report security vulnerabilities.
