Spring Boot Integration

The Camunda Engine can be used in a Spring Boot application by using provided Spring Boot starters. Spring boot starters allow to enable behavior of your spring-boot application by adding dependencies to the classpath.

These starters will pre-configure the Camunda process engine, REST API and Web applications, so they can easily be used in a standalone process application.

If you are not familiar with Spring Boot, read the getting started guide.

To enable Camunda BPM auto configuration, add the following dependency to your pom.xml:

<dependency>
  <groupId>org.camunda.bpm.springboot</groupId>
  <artifactId>camunda-bpm-spring-boot-starter</artifactId>
  <version>3.3.4</version>
</dependency>

This will add the Camunda engine v.7.11 to your dependencies.

Other starters that can be used are: camunda-bpm-spring-boot-starter-rest and camunda-bpm-spring-boot-starter-webapp.

Overriding Camunda Version

If you want to override the version used by default, add the camunda.version property to your pom.xml with the version you want to use and add the camunda bom to the dependency management:

<properties>
  <camunda.version>7.11.0</camunda.version>
</properties>

<dependencyManagement>
  <dependencies>
    <dependency>
      <!-- Import dependency management from camunda -->
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-bom</artifactId>
      <version>${camunda.version}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

Please check version compatibility when selecting Spring Boot Starter and Camunda BPM versions.

Using Enterprise Edition

To use Camunda Spring Boot Starter with Camunda EE you need to:

  1. Override the camunda.version with the desired EE version:
<properties>
  <camunda.version>7.11.0-ee</camunda.version>
</properties>

<dependencyManagement>
  <dependencies>
    <dependency>
      <!-- Import dependency management from camunda -->
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-bom</artifactId>
      <version>${camunda.version}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>
  1. Use the EE version of the webapp (camunda-bpm-spring-boot-starter-webapp-ee instead of camunda-bpm-spring-boot-starter-webapp), see also Web Applications:
<dependency>
  <groupId>org.camunda.bpm.springboot</groupId>
  <artifactId>camunda-bpm-spring-boot-starter-webapp-ee</artifactId>
  <version>{project-version}</version>
</dependency>

Supported deployment scenarios

Following deployment scenario is supported by Camunda:

  • executable JAR with embedded Tomcat and one embedded process engine (plus Webapps when needed)

There are other possible variations that might also work, but are not tested by Camunda at the moment.