VI · Graphs & sets

DAG · directed acyclic graph

Order without cycles.

The story

Not a single inventor — but a single, recurring shape. Build systems, package managers, version control, distributed schedulers, dataflow engines: anything where "X must happen before Y" is acyclic, and the natural representation is a DAG.

How it works

Vertices = tasks/objects; edges = dependencies. Topological sort produces an execution order in O(V + E). Cycles signal an error.

Where it lives

make, Bazel, Buck, Pants. Git's commit graph. Spark / Flink / Beam DAGs. Airflow / Prefect / Dagster. Kubernetes admission webhooks (validation order). Every dataflow engine ever shipped.

The key insight

When you find yourself with a cycle in something that should be a DAG, the answer is almost always: extract the cyclic part into a separate component and break it. Tools that allow cycles eventually wish they hadn't.