HomeDocs › Migration › Camunda 7

Migrate from Camunda 7 to Priostack

Last updated: 2026-04-06 · 12 min read

Priostack is compatible with BPMN 2.0 and DMN 1.3. Most Camunda 7 process models load without modification — only the worker API and deployment method change.

Concept Mapping

Before migrating, understand how Camunda 7 concepts map to Priostack equivalents.

Camunda 7PriostackNotes
Process Engine (embedded/server)Priostack Engine (hosted)No local JVM required
External Task PatternJob Worker (polling)Same poll-activate-complete cycle
Java Delegate / ExpressionService Task + workerMove logic to a worker process
Cockpit (monitoring)Dashboard / ConsoleWeb UI + REST API
Tasklist (user tasks)/tasklistSame task claim/complete model
REST API /engine-rest/api/v1Different paths — see mapping below
DMN Engine (decision tables)Built-in DMN 1.3 evaluationPOST /api/v1/decisions/evaluate
Form Fields (embedded forms)Variable map in task completePass variables in POST /api/v1/tasks/{key}/complete
Tenants (multi-tenancy)Per-account isolationEach API key = one tenant namespace

REST API Endpoint Mapping

Camunda 7 endpointPriostack equivalent
POST /engine-rest/deployment/createPOST /api/v1/deployments
POST /engine-rest/process-definition/{id}/startPOST /api/v1/process-instances
GET /engine-rest/process-instanceGET /api/v1/process-instances
GET /engine-rest/external-taskPOST /api/v1/jobs/activate (poll model)
POST /engine-rest/external-task/{id}/completePOST /api/v1/jobs/{key}/complete
POST /engine-rest/external-task/{id}/failurePOST /api/v1/jobs/{key}/fail
GET /engine-rest/taskGET /api/v1/tasks
POST /engine-rest/task/{id}/completePOST /api/v1/tasks/{key}/complete
POST /engine-rest/messagePOST /api/v1/messages
POST /engine-rest/decision-definition/{id}/evaluatePOST /api/v1/decisions/evaluate

Migration Steps

Step 1 — Export your process definitions

From Camunda 7 Cockpit or the filesystem, collect all .bpmn and .dmn files. Priostack accepts the same XML format.

Step 2 — Remove Java-specific extensions

Camunda 7 uses Java Delegates and expression language that Priostack does not support. Strip or replace these elements:

Remove camunda:class, camunda:expression, camunda:delegateExpression from Service Tasks. Replace with zeebe:taskDefinition type="your-worker-type".

Before (Camunda 7):

<serviceTask id="credit-check" name="Credit Check"
  camunda:class="com.example.CreditCheckDelegate" />

After (Priostack / Zeebe-compatible):

<serviceTask id="credit-check" name="Credit Check">
  <extensionElements>
    <zeebe:taskDefinition type="credit-check" />
  </extensionElements>
</serviceTask>

Step 3 — Deploy to Priostack

curl -X POST https://priostack.com/api/v1/deployments \
  -H "X-API-Key: ps_your_key" \
  -H "Content-Type: application/xml" \
  --data-binary @loan-approval.bpmn

Step 4 — Port your External Task workers

Camunda 7 External Task workers poll /engine-rest/external-task/fetchAndLock. In Priostack, poll POST /api/v1/jobs/activate:

Camunda 7 worker (conceptual):

// fetchAndLock
POST /engine-rest/external-task/fetchAndLock
{"workerId":"w1","maxTasks":10,"topics":[{"topicName":"credit-check","lockDuration":30000}]}

Priostack worker:

// activate
POST /api/v1/jobs/activate
{"type":"credit-check","worker":"w1","maxJobsToActivate":10,"timeout":30000}

// complete a job
POST /api/v1/jobs/{jobKey}/complete
{"variables":{"score":720,"approved":true}}

Step 5 — Migrate DMN decision tables

Camunda 7 DMN 1.1/1.3 tables are fully compatible. Deploy them alongside BPMN or standalone:

curl -X POST https://priostack.com/api/v1/deployments \
  -H "X-API-Key: ps_your_key" \
  -H "Content-Type: application/xml" \
  --data-binary @credit-score.dmn

Evaluate standalone:

curl -X POST https://priostack.com/api/v1/decisions/evaluate \
  -H "X-API-Key: ps_your_key" \
  -H "Content-Type: application/json" \
  -d '{"decision_id":"creditScore","variables":{"score":720,"employment":"full-time"}}'

Step 6 — Update User Task handling

Camunda 7 task query and claim API maps directly:

# List open tasks
GET /api/v1/tasks?process_instance_id={instanceKey}

# Complete a task (equivalent to setVariables + complete)
POST /api/v1/tasks/{taskKey}/complete
{"variables":{"approved":true,"comment":"Looks good"}}

Step 7 — Remove Spring / CDI dependencies

If your workers were embedded in a Spring Boot app using camunda-bpm-spring-boot-starter, extract the business logic into standalone worker processes. Your workers can be any language — Priostack workers speak plain HTTP.

Unsupported Features

Camunda 7 featureStatus in Priostack
Embedded subprocess history (full audit trail)Instance state + events — no fine-grained history DB
BPMN compensation eventsNot yet supported (roadmap)
Script tasks (Groovy, JavaScript)Not supported — use a worker process instead
Case execution (CMMN 1.0 embedded in Camunda 7)CMMN 1.1 supported as a separate deployment
Batch operations APINot yet supported
Need help migrating a specific model? Contact support@priostack.com with your BPMN file and the current Camunda 7 behavior you need to preserve.

← Troubleshooting · Activiti Migration Guide →