I have a workflow with several tasks. Some of should make calls to external applications/systems. When those systems are finished, they should call my workflow and tell it to go to the next task in the workflow. The external task could last for days.
Is there a good way to do this Do you have a documantation on how this could be achived in the best possible way?
Another approach to the external task approach is to use a send and receive task pair. The send task initiates the asynchronous interaction. When the external system task is complete, it initiates a callback via message correlation to a receive task.
The external task pattern will work, however another consideration is do you want the asynchronous nature of the tasks to be explicit in your process model?
Do you have an example of this approach? Or tutorial?
I am not sure how if the async func should be explicit in the business process. The business need is clear. The workflow does a lot of data collecting and validating. In the end of the process, there is a exclusive gateway. If there is a error in the validation, the errors should be sendt out to an application/UI (via kafka topic), that will correct the errors. As long as this takes, the workflow should wait before continuing. It will continue when a message from the external application/UI sends a message (by kafka, but could be rest).
How to solve this is a way that the Camunda experts say: “Perfect!”.
Anyway, I am very grateful for your response and help.