goflow icon indicating copy to clipboard operation
goflow copied to clipboard

[Discussion] Workflow rollback support

Open qiankunli opened this issue 2 years ago • 1 comments

in my case, i want to use goflow to create some resources on a public cloud. like creating a cloud vm with public ip.

  1. create a vm using cloud openapi
  2. wait the status of vm is running
  3. create a public ip using cloud openapi
  4. wait the status of public ip is available
  5. bind the public ip with vm
  6. other steps

i want

  1. if I cancel the workflow(like run flow.cancel()), workflow can free the created resources(vm,public ip etc)
  2. if one step failed, workflow can free the created resources(vm,public ip etc)

qiankunli avatar May 12 '23 11:05 qiankunli

@qiankunli Not yet. There is a way it can be done - for example after each Node you can add a conditional branch where for success you continue with the flow else you fallback to a rollback flow. This will require you to manually create and handle the failure.

Cancel() is not supported yet. We only support Stop() atm. I think this is a good suggestion to have a rollback supported out of the box. In that case each node will have a rollback handler defined. On cancellation it will call all rollback handler.

Although its gets complicated for dynamic branching. We need to store exactly which node executed and how many times with what params

s8sg avatar May 17 '23 07:05 s8sg