bpm-crafters / bpm-crafters/process-engine-worker

Support Spring Boot 3 and 4 via dual starters (mirror Camunda)

Open
#267 1 comment 0 reactions 0 assignees View on GitHub
Prio: COULD Type: bug
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.