Implementing a Zapier like workflow orchestrator represented by a DAG with Temporal

You model your DAG as an object graph, not functions. Something like:

A a = new A();
B b = new B();
C c = new C(a, b)

DAG dag = new DAG(a, b, c);
dag.execute();

In the real workflow, you are not going to hardcode the instantiation of the DAG but rather parse it from the DSL document created through UI.

Here are examples of DSL workflows in Java, Go, Python, Typescript.

2 Likes