# Directed Acyclic Graph

Record: `arch:directed-acyclic-graph`
Kind: constraint
Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)
Severity: mandatory for dependency architecture
Scope: dependency graph, workflow, build
Canonical: https://banes-lab.com/ontology#arch-directed-acyclic-graph

## Repair

- Refactored by: Invert Dependency, Extract Interface, Split Module
- Detected by: [cycle detection](https://banes-lab.com/records/lex/cycle-detection.md)
- Violated by: dependency cycle
- Measured by: cycle count
- Enforced by: graph checks

## requires

- [Directed Dependencies](https://banes-lab.com/records/lex/directed-dependencies.md)

## reinforces

- [Layering](https://banes-lab.com/records/lex/layering.md)
- [Build Order](https://banes-lab.com/records/lex/build-order.md)

## enables

- [Topological Ordering](https://banes-lab.com/records/lex/topological-ordering.md)

## conflicts-with

- [Cyclic Dependencies](https://banes-lab.com/records/lex/cyclic-dependencies.md)
- [Circular Dependency](https://banes-lab.com/records/arch/circular-dependency.md)

## tensions-with

- [Bidirectional Collaboration](https://banes-lab.com/records/lex/bidirectional-collaboration.md)

## tensions

- [Directed Acyclic Graph (DAG) Bidirectional Collaboration](https://banes-lab.com/records/tension/bidirectional-collaboration-directed-acyclic-graph-dag.md)
