Durability with external worker task

@filiphr can you kindly confirm the following with respect to an external worker client?

A process having external worker tasks can be configured to be durable? i.e. if the external task failed, the process instance continues to live and the worker can die and come back up with a fix.

Or in other words, if the external worker has exhausted the no of retry attempts is there a way to hold the process instance at that failed step?

Also, can an external worker run a script task with script defined in the process definition?
Or can a script task be made to run externally?

@filiphr @joram @tijs can you please confirm if the process instances can live to be durable in case of failures? or they always end up dying once started?

It will make it beneficial for process instance to live (persist the state and resume processing) at the failed step especially when paired with external workers.

Hi @deepakkapoor23 ,

My first question would be, did you try to run a process instance with an external worker task? Because then you will see that the process state is persisted when the external worker task is reached. In case the external worker doesn’t complete the task, the process state will remain to be in the same state. Maybe you can explain a bit more in technical details and using the api available on what you are looking for exactly.

Best regards

@tijs Yes, I tried it today and noticed that the process instance is still alive (which I never saw before when I tried Flowable earlier, it always ended and moved to history). So looks like the process instance is indeed durable.

However, I couldn’t find the process runtime REST API to resume the active process instance from failed activity onward, I tried change-state but that threw and exception. Can you please point me to the appropriate API to resume the process instance.

Also, I see no way of having a script task run externally. I want the external job to be able to fetch a script defined in process definition and execute it externally. Is that possible?

I found the management API to move dead letter jobs but can you please confirm if this is possible with Flowable? - run a script task on an external worker