Roadmap
Work is grouped by importance and complexity, from documentation to changes in the execution model. Completed tasks remain visible, crossed out and linked to documentation. Colors indicate relative effort.
This is a plan, without promised dates. See documentation for current behavior and BPMN limitations for unsupported features. Discuss priorities in GitHub issues.
Stage 1. Documentation#
Answers to the questions architects ask first, without changing the engine.
Execution semantics
At-least-once execution, task leases, retries after failure, idempotent methods and handlers, and when to use service tasks.
Waiting for external events
When to use messages, system-completed user tasks or polling service tasks, with examples and pitfalls.
Security
Protecting the API and console, deriving task identity from authentication and choosing safe process variables.
Changing processes
Compatible changes, removing elements with running instances and using KindPrefix for incompatible versions.
Reference architecture
A Kubernetes service with a dedicated engine database or a shared service database, including tradeoffs.
Migrating from Camunda 7
Reusing diagrams and DMN tables, rewriting delegates and expressions, and handling in-flight instances.
Stage 2. Operations and security#
Engine improvements that reduce custom production infrastructure.
Prometheus metrics
Queue states, oldest task age, instance states, open user tasks and attempt durations through client_golang.
API and console authorization
Resolve user identity and groups from a request instead of taking the task assignee from its body.
Operations audit log
Record who retried a task, edited variables or cancelled an instance, and when.
History retention
engine.Retention removes old completed and cancelled instances with element/rule history and user tasks.
Engine hooks
engine.Hooks provides element events, service call wrappers for tracing, and instance failure callbacks for alerts.
Supply chain security
CI vulnerability checks, image SBOM and provenance, and keyless cosign signatures.
DocumentationStage 3. Missing BPMN features#
Features built on waiting points, queued tasks and boundary timer races.
Messages with key correlation
Receive tasks and intermediate catches wait for messages from HTTP or Go; TTL buffers early responses.
DocumentationUser task boundary timers
Escalate overdue work by cancelling a user task and following a different process path.
DocumentationCall activity and subprocess boundary events
Apply a deadline or error route to an entire child process.
Non-interrupting boundary timers
Send reminders or notifications without interrupting the activity.
timeDate timers
Use an RFC 3339 deadline or a process variable for intermediate and boundary timers.
DocumentationtimeCycle timers
Repeating timers for reminders and scheduled starts.
History partitioning
Partition bpm_history by time for predictable growth and partition-based cleanup.
Server load testing
Multiple service replicas sharing a database, p99 latency and PostgreSQL replica failover.
Stage 4. Advanced BPMN#
Changes that require richer execution semantics and compensation.
Sequential multi-instance
Repeat tasks, subprocesses or call activities with a count and completion condition.
DocumentationParallel multi-instance
Concurrent iterations and collection-driven work, such as approval by everyone in a list.
Compensation
BPMN saga rollback using compensating tasks.
Inclusive and event-based gateways
Conditional multi-branch selection and waiting for the first message or timer.
Message starts and interruptions
Start a process from an incoming event or interrupt an activity with a boundary message.
Camunda 7 generator attributes
Reuse Camunda 7 diagrams without redrawing them in a Camunda 8 modeler.
Design decisions#
- Processes are deployed with service code and validated by compilation, tests and review.
- PostgreSQL remains the storage and queue foundation.
- Go remains the implementation language; call other services through service tasks.