# Pipeline Architecture

> A design pattern that splits processing into ordered stages, each with a declared input and output contract.

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

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Single-Pass Processing](https://banes-lab.com/records/architecture/single-pass-processing.md) and before [Lazy Evaluation](https://banes-lab.com/records/architecture/lazy-evaluation.md).

## Repair

- Refactored by: Split into Stages, Define Stage Contracts
- Detected by: long procedural transformation chain
- Violated by: one large processor handling all stages
- Measured by: stage cohesion, stage contract coverage
- Enforced by: pipeline tests

## Requires

- [Stage Contracts](https://banes-lab.com/records/lexicon/stage-contracts.md)

## Reinforces

- [Composability](https://banes-lab.com/records/architecture/composability.md)
- [Streaming](https://banes-lab.com/records/lexicon/streaming.md)

## Enables

- [Stepwise Transformation](https://banes-lab.com/records/lexicon/stepwise-transformation.md)

## Conflicts with

- [Monolithic Processing Function](https://banes-lab.com/records/lexicon/monolithic-processing-function.md)

## In tension with

- [Error Propagation/Debugging](https://banes-lab.com/records/lexicon/error-propagation-debugging.md)

## Tensions

- [Pipeline Architecture / Error Propagation/Debugging](https://banes-lab.com/records/tension/error-propagation-debugging-pipeline-architecture.md)

## Severity

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

## Category

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

## Reinforced by

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

## Linked from

- [One chain](https://banes-lab.com/disciplined-methodology/ship/one-chain.md)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [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)
