# Dataflow Architecture

> A convention of arranging processing as a graph of stages connected by explicit data edges, where a stage runs when its inputs arrive.

Record: `architecture:dataflow-architecture`
Kind: style
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: contextual
Scope: processing, workflow, stream
Canonical: https://banes-lab.com/ontology#architecture-dataflow-architecture

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Forward-Only Processing](https://banes-lab.com/records/architecture/forward-only-processing.md) and before [Stateless Processing](https://banes-lab.com/records/architecture/stateless-processing.md).

## Repair

- Refactored by: Make Data Edges Explicit, Split Stages
- Detected by: implicit shared state in pipeline
- Violated by: hidden data dependencies between stages
- Measured by: data dependency clarity
- Enforced by: pipeline contracts

## Requires

- [Data Dependencies](https://banes-lab.com/records/lexicon/data-dependencies.md)
- [Stages](https://banes-lab.com/records/lexicon/stages.md)

## Reinforces

- [Pipeline Architecture](https://banes-lab.com/records/architecture/pipeline-architecture.md)

## Enables

- [Parallel/Stream Processing](https://banes-lab.com/records/lexicon/parallel-stream-processing.md)

## Conflicts with

- [Control-Flow-Centric Monolith](https://banes-lab.com/records/lexicon/control-flow-centric-monolith.md)

## In tension with

- [State Coordination](https://banes-lab.com/records/lexicon/state-coordination.md)

## Tensions

- [Dataflow Architecture / State Coordination](https://banes-lab.com/records/tension/dataflow-architecture-state-coordination.md)

## Severity

- [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)

## Category

- [Streaming / Pipeline / Dataflow Processing](https://banes-lab.com/records/architecture-category/streaming-pipeline-dataflow-processing.md)

## Linked from

- [Streaming / Pipeline / Dataflow Processing](https://banes-lab.com/ontology/principles/architecture-category-streaming-pipeline-dataflow-processing.md)
- [Streaming / Pipeline / Dataflow Processing](https://banes-lab.com/ontology/lexicon/lexicon-category-streaming-pipeline-dataflow-processing.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
