External task and external task client


Could you confirm me that "External Task " implement an Camunda Listener for an asynchronous answer
and “External task Client” Calling an other Micro Service ?


If an activity/task in BPMN is classified as a Service Task that is an “External Task” in Camunda Modeler, then it will require you to register a keyword that represents a “topic” for external workers to fetch and lock on to in order to complete the work. The worker that does a fetch/lock on any particular external task instance can be written in any programming language (not just Java). Once that worker acquires a “lock” on the activity instance by the process engine, it can then do the work, and send a “complete” signal for this activity, perhaps accompanied by a payload of some kind to pass along to the process instance.

Perhaps you can classify this “worker” as a “microservice” if it is appropriate in your domain. But from Camunda’s point of view, the naming and classification are just semantics. It would be incorrect to say that an external task implements a Camunda Listener.

You can read more here: https://docs.camunda.org/manual/latest/user-guide/process-engine/external-tasks/

Hope that helps.



“External task” and “External task client” are two differents concept ?
So i think using “External task” for big and consistent java task and “External client task” if i calling an existing other standard MicroService ?

Hi pcouas,
External task is the one way of implementing a service task by specifying a topic name.
And external task client is a java/javascript client which will be subscribed to that topic, and the implementation of the external task will be done on external task client side.