Is anyone interested in contributing to a new OSS built with Go? Please join to develop a No-Code workflow engine!

yohamta

Yota Hamada

Posted on May 17, 2022

Is anyone interested in contributing to a new OSS built with Go? Please join to develop a No-Code workflow engine!

Summary

I'm developing a No-code workflow engine with built-in web UI. I am writing this article because I am looking for new contributors. If you are interested, please take a look at the GitHub repository :)

Dagu is an ideal workflow engine to use for existing code base, personal projects, or smaller use cases with fewer groups of people.

What is a workflow engine?

A workflow engine is a tool like Airflow, which was developed by Airbnb and is very popular among data scientists and DevOps engineers.

A workflow is a series of business processes or tasks executed according to a schedule or event. A workflow engine represents the dependencies of tasks as a DAG, which stands for Directed Acyclic Graph.

By representing a series of tasks as DAG, it is much easier to execute multiple related tasks in the correct order according to their dependencies.

Not only can you interpret and execute your workflow as a DAG, but you can also visualize the dependencies between tasks and represent complex workflows in a way that is easy to understand. This is the beauty of a workflow engine like Airflow.

screenshot of Dagu

Yes, ...... Honestly, it's not that great looking. Will improve soon. The important point is not the look, but the function.

What's the difference compared to Airflow or Prefect?

So why am I building a new workflow engine now? Why not just use an already popular workflow engine?

The reason is that Airflow and Prefect require you to write Python code to define DAGs. The system I am working with has already been in operation for over ten years and has hundreds of thousands of lines of code written in other languages. It is practically impossible to rewrite these codes in Python. And while it is possible to call existing code from the Python code, this would complicate the situation even more.

I searched all over the Internet for a lightweight workflow engine that is easy to use while still leveraging existing code, but no desirable tool existed for such a use case.

So I decided to develop a new workflow engine, Dagu, which allows you to define DAGs in a simple YAML format. So, in that sense, Dagu is no-code in terms of the way to manage workflows, compared to Airflow, Prefect, and Luigi. Since it's just a YAML file that define commands to execute, existing programs can be easily migrated without modification. In addition, because it is self-contained, no-dependency, and it does not require DBMS. These features make Dagu an ideal workflow engine to use for existing code base, personal projects, or smaller use cases with fewer groups of people.

Dagu is an alternative to a code-based workflow engine

It is not fancy, but I have implemented it in my own projects and have seen great results. Complex task dependencies have been clarified, and inefficient operations have been greatly improved.

However, a great deal of effort is still required to develop Dagu. If you are interested in Dagu, please feel free to contribute in any way you want!

What needs to be done now is summarized in the following TODO issues. Please take a look at it if you like. Any kind of contribution will be welcomed.

https://github.com/yohamta/dagu/issues/102

Thanks!

💖 💪 🙅 🚩
yohamta
Yota Hamada

Posted on May 17, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related