bpm-crafters / bpm-crafters/process-engine-worker
Support Spring Boot 3 and 4 via dual starters (mirror Camunda)
- Dominant language
- Kotlin
- Stars
- 17
- Forks
- 2
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 4
Description
## Problem
The C8 adapter (`process-engine-adapter-camunda-platform-c8-*`) has been on Spring Boot 4 / Camunda 8.9 since `2026.02.1` (currently pinned at `2026.07.1`), while the worker and examples still run Spring Boot 3.5. The C8 self-managed example no longer starts: duplicate `healthContributorRegistry` bean plus an `httpclient5` method mismatch. The port fix in #185 and #266 is necessary but doesn't get the example running on Spring Boot 3.
Boot 3 and 4 aren't binary compatible in the actuator/health autoconfig layer, so one artifact can't serve both.
The worker core starter is already Boot neutral (only `@AutoConfiguration`, `@ConditionalOn*`, property binding, `jakarta.transaction`, Micrometer). The split is forced by the Camunda SDK and enters only through the C8 adapter. `itest` is C7 only and unaffected.
## Proposal
Mirror Camunda's dual starter model (`camunda-spring-boot-3-starter` for Boot 3, `camunda-spring-boot-starter` for Boot 4):
* `…-c8-core`: neutral logic, depends only on `camunda-client-java` and Spring Framework core
* `…-c8-spring-boot-3-starter`: Boot 3 + Camunda 8.8.x
* `…-c8-spring-boot-starter`: Boot 4 + Camunda 8.9.x
The autoconfig layer is thin enough that both starters can share nearly all source, differing only in the imported Boot BOM and Camunda line. BOM manages both, docs route consumers by generation, CI runs a Boot 3 / Boot 4 matrix.
## Watch out for
* SB3 must pull `spring-boot-actuator`, never `spring-boot-health` (SB4 only).
* Pin `httpclient5` per line: 8.8 works with the native version, 8.9 needs the newer one from `camunda-bom`.
* Exclude the other generation's `camunda-spring-boot-starter` on transitive paths.
Adapter source lives in `process-engine-adapters`. This issue tracks the direction plus the matching example and docs updates here.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in process-engine-adapters and inspect the C8 adapter source, then run the C8 self-managed example to reproduce its startup failures. Compare the proposed Boot 3/4 dual-starter layout with Camunda's model, including the BOM and dependency boundaries. Done means both starter generations build and the matching example starts, with the BOM, CI matrix, and consumer documentation updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin, spring-boot
- Domain
- backend, build-system, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100