No-code or Workflow as code? Better both
Tags: workflow, temporal, programming, aws
Published: 2022-11-29 15:53:21

In KuFlow we know that some users don't need a fine-grain control of the workflows that they develop. Sometimes, the business process is so simple that you just want to establish a bunch of tasks, establish the relationship between them, and run the process.

For that kind of scenario, maybe you don’t need to implement the workflow as code and deploy it in a conventional way, so we have developed the KuFlow Diagram Tool that is based on these three pieces:

- [Diagram Maker], a new drag-and-drop tool designed to allow our users to implement simple workflows

- [Serverless workflow]. Instead of reinventing the wheel, we decided to base this feature on an established and mature specification. Serverless workflow is a powerful open-source standard

- [Temporal] as the main runtime engine that acts as the foundation for the workflow execution

![Serverless workflows in KuFlow](https://kuflow.com/static/3a1b582710289fd7d5a8ef515018b213/d00b9/kuflow_diagram_tool.webp)

## How does it work?

First of all, you must define your workflow using our Diagram Maker Tool.

Thanks to the great work of [AWS](https://github.com/awslabs), we could build a minimalist UI, that fits our necessities.

But please remember! This is a first version of this tool. We are planning to add features to it, according to the feedback we receive from the community.

Once you have defined the workflow on a diagram, a JSON, following the [Serverless workflow] specification, is stored in KuFlow. With this specification, we can use all the great tools/libs that are developed.

Finally, our KuFlow Diagram Runner executes the JSON created after the diagram. This Runner is based on the great work of [Tihomir Surdilovic](https://github.com/tsurdilo) (aka [tsurdilo](https://twitter.com/tsurdilo)) that you can find at [his repo](https://github.com/tsurdilo/swtemporal) (_kudos_, Tihomir!). Thanks to his awesome work, we have developed a very simple Serverless Workflow Runtime, that doesn't have all the features that the specification allows, but we think that it covers the core set of them as a first version.

The runtime is developed using [Temporal], which is one of the main tools that we are currently using at KuFlow. Thanks to, all the workflow executions are robust: your application will be durable, reliable, and scalable.

## How can I do it?

We are preparing a video tutorial with all the required steps (stay tuned on [Twitter](https://twitter.com/kuflowio) or subscribe to [our YouTube channel](https://www.youtube.com/channel/UCXoRtHICa86YfX8P_wu1f6Q)!).

Meanwhile, you can try to create your own Serverless Workflow in KuFlow on your own, creating a new process definition and selecting “KuFlow Diagram Tool” as its Workflow Engine. Please remember that you can use [our forum](https://community.kuflow.com/) to ask about any issue or doubt you may find.

![Serverless workflows in KuFlow](https://kuflow.com/static/f4567261a7246965be40b25156755b45/d00b9/kuflow_serverless_workflow.webp)

## What's next?

Well, honestly, we are not very sure at this moment. We have thought about different paths for continuing the development: adding more features to the Diagram Tool, covering more details of the Serverless Workflow specification, building a DSL tool from scratch,... We are looking forward to getting some feedback from you, in order to establish the best priorities thinking in our community.

**Please share your thoughts with us on [Twitter](https://twitter.com/kuflowio)!**

[diagram maker]: https://github.com/awslabs/diagram-maker
[serverless workflow]: https://serverlessworkflow.io/
[temporal]: https://temporal.io/