This library provides a modern engine-agnostic API which can be used to implement process applications. By providing a set of adapters to relevant process engines (Camunda Platform 7, Camunda Platform 8, etc...) the library enforces separation of the integration of process engine from the selection of the used engine. This approach fosters an easy migration between engines and tries to achieve to support migrations with minimal (or even no) code modifications.
The API consists of different parts independent of each other:
- Deployment API
- Evaluate Decision API
- Start Process API
- Correlate Message API
- Send Signal API
- Task Subscription API
- User Task Completion API
- User Task Modification API
- Service Task Completion API
| C7 embedded | C7 remote | CIB7 | C8 | |
|---|---|---|---|---|
| Deployment | ✅ | ✅ | ✅ | ✅ |
| Decision Evaluation | ❌ | ❌ | ❌ | ✅ |
| Start Process by definition | ✅ | ✅ | ✅ | ✅ |
| Start Process by definition at | ✅ | ✅ | ✅ | ✅ |
| Start Process by message | ✅ | ✅ | ✅ | ✅ |
| Correlate message | ✅ | ✅ | ✅ | ✅ |
| Send signal | ✅ | ✅ | ✅ | ✅ |
| Subscribe to task | ✅ | ✅ | ✅ | ✅ |
| Complete user task | ✅ | ✅ | ✅ | ✅ |
| Complete user task by error | ✅ | ✅ | ✅ | ✅ |
| Modify user task | ✅ | ✅ | ✅ | ❌ |
| Complete service task | ✅ | ✅ | ✅ | ✅ |
| Complete service task by error | ✅ | ✅ | ✅ | ✅ |
| Fail service task | ✅ | ✅ | ✅ | ✅ |
- User Task Support
If you want to try the API, please refer to one of the adapter implementations matching your infrastructure. For example:
If you are using the Process Engine API to provide workers using Spring Boot, there is a library with improved support for it:
The API documentation can be found here or in its respective repository.
The library contains of the following Maven modules:
process-engine-api: pure API written in Kotlin (100% Java-compatible)process-engine-api-impl: commons implementation, which is independent of the selected engine and can be used for adapter implementations.
If you are missing a feature or found a bug, please open an issue on this project and provide a pull request. If you have general questions, make sure to stop by our discussions.