Deploy processes and run instances
These are the everyday operations against the v2 REST API (all also available over the Falcon protocol).
- Deploy a model —
POST /v2/deploymentswith the BPMN 2.0 XML. Deployment is idempotent: a byte-for-byte-identical redeploy reuses the current version; a changed model becomes the next version. - Start an instance —
POST /v2/process-instancesbyprocessDefinitionIdorprocessDefinitionKey. Variables on the request seed the instance. WithawaitCompletion: truethe call blocks (up torequestTimeout, default 5 s) and returns the final variables whenprocessCompletedistrue. Note: on timeout Nano returns200withprocessCompleted: falseand theprocessInstanceKey(so you can poll), rather than Camunda's504. - Work jobs —
POST /v2/jobs/activationactivates jobs of a type (with Camunda-style long-polling),…/completioncompletes a job and merges its output into the instance (driving downstream routing),…/failuresets remaining retries, and…/errorraises a BPMN business error (routing to a matching error boundary event if there is one). - Recover from incidents — when a job runs out of retries (or a condition or
uncaught error fails), an incident is raised and the work parks. The recovery
loop is: give the job retries again with
PATCH /v2/jobs/{key}(or correct the data behind a gateway incident viaPUT /v2/element-instances/{key}/variables), thenPOST /v2/incidents/{incidentKey}/resolution, which retries the failed work rather than just clearing the record. - Correlate messages —
POST /v2/messages/publicationand…/correlationdeliver a message to any matching open subscription, releasing a catch event, interrupting an activity via a boundary event, or creating a new instance for a message start event. Messages are not buffered: with no match, the message is dropped. - Observe state — the
search/getendpoints for process instances, jobs, incidents, and variables expose engine state. They support the full v2 query contract: operator filters ($eq,$neq,$in,$notIn,$exists,$likewith*/?wildcards), multi-field sort, and all four pagination shapes (limit, offset, forward cursor, backward cursor).
Reads are eventually consistent. A
search/getissued in the instant after a write may briefly not observe it (typically sub-millisecond), exactly like Camunda 8's Operate read channel. The read side is a durable projection, so queries are served from it, not from live engine memory.