External workers(Crossing System Boundaries) setup for external service task

I was using camunda Rest API, and I need to make service calls before and after every user tasks.

From the BPMN above, both service task does the same job, which captures the data at before and after the review(user task).

  1. Is it required to create 2 service task of the same service task?

  2. Without completing the service task, the process instance should not go to end state. The data capturing logic was exposed as Rest API by the external system. Should I make an internal service task call where configured java delegate can make rest API call to capture data and complete the task or by configuring service task as external task and let the external workers invoke the Rest API to complete the task?

From the camunda docs, it was mentioned like Specialized Workers(An external worker) can be an external system which is not part of process application which polls the task from external tasklist and completes the task based on the topics.

  1. In this context, what exactly are workers referring to?
  2. Is it like a shell script or thread pool with executors which will continuously listen to the external task list and keeps polling the tasks?
  3. In external worker entity, what logic exactly we need to implement?
  4. Is this like a publish-subscribe model?
  5. How to handle exceptions in external workers?
  6. External task workers are synchronous or asynchronous execution?