I'm looking at creating a web-based workflow platform that meets the following requirements.
A workflow is a DAG of steps available in the user interface and can be stored as a JSON or YAML
Steps: Tasks or functions, can take input as well as output from prior steps, these tasks can be I/O or CPU bound.
- Create a workflow by dragging and dropping steps from a web UI.
- All programming options, such as skip or execute on condition, loop on items, and so on, should be supported by steps.
- allows for a halt for approval and then a resume.
- Multi tenancy support
- scalable
- guaranteed execution
- These workflow should be able to trigger/schedule from UI
For the above requirement, I have been exploring various open-source workflow engines and narrowed down my choice to cadence and kestra
But I am still not sure whether I should design a workflow engine from scratch or should be dependent on an open-source option considering my requirement. Is cadence a good choice if I want to move ahead for my requirement