ShiningRush / fastflow

A lightweight, high-performance distributed workflow framework
MIT License
348 stars 80 forks source link

is fastflow support rollback? #22

Closed qiankunli closed 1 year ago

qiankunli commented 1 year ago

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)
ShiningRush commented 1 year ago

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

Fastflow support cancel command, you can free resource when dag instance cancel(you can get a signal from context).

if one step failed, workflow can free the created resources(vm,public ip etc)

Backward recovery(or call it rollback) is expensive, it would be better to recover forward, this is fastflow recommend way. Fastflow now is not yet support rollback command, but you could start a rollback dag to make it. (You can refer #7 to get more detail.)