Directed Acyclic Graph (DAG)
All Conductor workflows are directed acyclic graphs (DAGs). A directed acyclic graph (DAG) is a set of vertices where the connections are unidirectional without any repetition. DAG workflows can move only in one direction and cannot redo a step (or series of steps).
Here is a breakdown of what DAG means:
- Graph
For DAGs, a graph refers to "a collection of vertices (or points) and edges (or lines) that indicate connections between the vertices."

Imagine each vertex in the above graph as a microservice. The lines represent a dependency relation between each microservice. However, this graph is not a directed graph, as there is no direction given to each dependency.
- Directed
In a directed graph, each connection (edge) has a direction. For example, this graph is directed:

Each line has a direction. In the example above, Point N can proceed directly to B, but B cannot proceed directly to N.
- Acyclic
Acyclic means without circular or cyclic paths. The example shown above contains directed cyclic graphs, such as A -> B -> D -> A. In contrast, a directed acyclic graph can only begin at one point and end at a different point (A -> B -> D).
Workflows as DAGs
A Conductor workflow is a series of tasks that can connect in only a specific direction and cannot circle back, it is a directed acyclic graph.

The order and structure of tasks are defined in the tasks array in the workflow definition JSON (or generated by an SDK).
Can a workflow contain loops and still be a DAG?
Yes. A workflow can include Do While tasks and still be a DAG because the loop is a simplified way to represent repeated instances of the same tasks. Each iteration creates a new task instance, so the execution path remains acyclic.