# DAG

Term type: Concept

Pronounced: dag (rhymes with bag)

A directed acyclic graph: nodes connected by directional edges, with no path that loops back to its starting node.

Also known as: directed acyclic graph

Aspire describes its resource dependency model as a directed acyclic graph. Resources form the nodes, and dependency relationships form directed edges.

The acyclic constraint matters for startup dependencies: if two resources each wait for the other, neither can proceed. Model the required ordering without introducing circular waits.

A startup dependency graph is not the same as the application's network traffic graph. Services can exchange requests without each waiting for the other to become ready.

## Practical example

An API waits for a migration job, which waits for a database. A reverse wait from the database to the API would create a cycle.

## Learn more

- [Understand your application's resource graph](https://aspire.dev/architecture/resource-model/)

## Related terms

- [Heterogeneous DAG](https://aspire.dev/hub/glossary/heterogeneous-dag/)

- [Resource](https://aspire.dev/hub/glossary/resource/)

- [WaitFor](https://aspire.dev/hub/glossary/waitfor/)