基于Web的多租户模型的工作流平台
我正在考虑创建一个符合以下要求的基于Web的工作流平台。
A WorkFlow 是用户界面中可用的一系列步骤,可以存储为JSON或YAML
步骤:任务或功能,也可以接受输入。作为先前步骤的输出,这些任务可以是I/O或CPU绑定。
- 通过从Web UI拖动和删除步骤来创建工作流程。
- 所有编程选项,例如跳过或执行条件,循环在项目上等等,均应由步骤支持。
- 允许停下来批准,然后进行简历。
- 多租赁支持 
- 可扩展的
- 保证执行;
- 这些工作流程应该能够从UI触发/时间表
以达到上述要求,我一直在探索各种开源工作流引擎,并将我的选择范围缩小到 Cadence和Kestra ,
但我仍然是不确定我是否应该从头开始设计工作流引擎,还是考虑到我的要求,应该取决于开源选项。 如果我想向前迈出要求,这是一个不错的选择
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议从开源项目开始,因为它似乎比从头开始更容易。 Kestra满足上述所有标准。我目前在那里工作,很高兴回答问题。如果您缺乏一些功能,我们将开放功能请求和反馈 - 您可以在github上打开问题 https://github.com/kestra-io/kestra
I would recommend starting with an open-source project as it seems easier than starting from scratch. Kestra satisfies all the above-mentioned criteria. I currently work there and happy to answer questions. If some features you need are lacking, we are open to feature requests and feedback - you can open an issue on GitHub https://github.com/kestra-io/kestra