Skip to content

Home

What is Process Engine API?#

Our experience with different process engines led us to an idea to create a vendor-independent API abstracting the main capabilities of a process engine.

In doing so, we followed several principles:

  • The API must be asynchronous.
  • The user should not make assumptions about the implementations of the API to stay portable if those are exchanged.
  • The API offers the minimal common set of capabilities instead of supporting all possible vendor-specific product features, unrelated to process orchestration.
  • Different aspects of process engine integration are solved using different independent APIs.
  • The API is command-based (you pass immutable commands indicating your intent).
  • For interaction with your software, the API uses subscriptions.
  • The vendor-adapters implementing APIs are drop-ins to your application classpath, and your application should not depend on them (rather you can configure those independently).

What process engines are already supported?#

Having all this in mind, we created a Process Engine API with several adapters which are ready to use in your next process application. In particular, you can use Process Engine API in your application and configure the adapter to use it with the following process engines / operation modes:

  • Camunda Platform 7 Embedded (Spring Boot)
  • Camunda Platform 7 Remote (connected via REST)
  • Camunda Platform 8
  • CIB Seven Embedded (Spring Boot)

In doing so, you might start your application using one engine / mode and migrate to the other later on, by changing a dependency and providing some additional configuration.

Sounds interesting to you? Try it out and provide us with some feedback...

How to start?#

We provide documentation for different people and different tasks. A good starting point is the Introduction. You might want to look at Reference Guide.

Get in touch#

If you are missing a feature, have a question regarding usage or deployment, you should definitely get in touch with us. Here is a link to the open issues of the project:

Github Issues

You might want to help with their implementation or file some new or just contribute your opinion in the discussions. At any rate, any participation or feedback is highly welcome.