A document to help building your own external task client for Camunda Platform by providing the requirements and useful sources
The following document list the requirements for an external task client for Camunda Platform. It distinguishes between minimum requirements and additional features. It can help to build a new External Task Client or to evaluate External Task clients from the community.
- Camunda Platform's REST API for External Tasks
- Java External Task Client maintained by Camunda
- JS External Task Client maintained by Camunda
- List with External Task Clients from the Community
Feature | Must include | Optional |
---|---|---|
Client object | ◻️ URL Endpoint for the Camunda Engine ◻️ Worker ID |
◻️ Maximum number of tasks to work on from the Camunda Engine ◻️ Lock Duration of a task ◻️ Long polling ◻️ Fetch task based on their priority ◻️ Automatic polling ◻️ Define interval for polling ◻️ Create Readable WorkerID |
Function / Methods to subscripe | ||
Fetch & Lock | ◻️ Subscribe to a task topic, include the task topic ◻️ Implement Polling ◻️ Lock a task ◻️ Allowing for multiple Fetch and Locks per client |
◻️ Lock Duration ◻️ Get back just local variables ◻️ Filtering task based on process properties: - ▫️ Variables - ▫️ Business key - ▫️ Process definition id - ▫️ Process definition key - ▫️ Process version - ▫️ Tenant Id |
Function / Methods after subscription | ||
Unsubscribe from Topic | ||
Stop Polling | ||
Function / Methods to handle a fetched task | ||
Handler | ◻️ Get Process Variables ◻️ Set Process variables |
|
Complete | ◻️ fetched task | ◻️ Share variables ◻️ Share local variables |
Handle BPMN Error | ◻️ Fetched task ◻️ BPMN Error Code |
◻️ Error Message ◻️ Share variables ◻️ Share local variable |
Handle Failure | ◻️ fetched task | ◻️ Retry Timeout ◻️ Retries ◻️ Error Details ◻️ Error Message |
Unlock | ◻️ fetched task | |
Extend Lock | ◻️ fetched task ◻️ new lock duration |