How to rerun the stage inside a case?

Issue:- Wants to rerun a stage based on a trigger given by a user task.

Flow Diagram:- I have provided a sample workflow to demonstrate my issue. Please see the sample below.

I need to perform,

  1. Case will be created, and stage 1 will be reached.
  2. On completion of stage1, stage 2 will be activated.
  3. Stage2 has some timer tasks which will take an hour to complete.
  4. In between that one hour, if the user changes his mind, he will trigger the stage3 and we need to run stage2 again. (whatever the state of the stage2 -we need to rerun)
  5. Stage 3 should be available again after the rerun.

Approach Used:

  1. I tried using Signal Throwing Intermediate Event but I’m not sure of how to configure the event and its catcher. I went through the public documentation but was unable to find out explanation regarding the configuration

  2. Cancel/suspend the process and start it again using API but I did not find any endpoint to do that.(ref:- [Flowable Open Source REST API Documentation | Flowable Enterprise Documentation])

Questions:-

  1. Best practice to handle this situation.
  2. How to configure those in the flowable design?
  3. And anything to be kept in mind while triggering these things using API.

Using a signal catch in the case, using the same ID for the signal as the on from the throwing part, would indeed allow that. You do need to make the stage 2 repeatable, as by default only one instance is allowed.