# Pipes and Filters

Record: `arch:pipes-and-filters`
Kind: style
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Severity: recommended
Scope: application, data processing, composition
Canonical: https://banes-lab.com/ontology#arch-pipes-and-filters

## Repair

- Refactored by: Extract Filters, Connect via Pipeline
- Detected by: long sequential transform bodies
- Violated by: one function performing every transform step inline
- Measured by: transform-step count per function
- Enforced by: [design review](https://banes-lab.com/records/arch/design-review.md)

## requires

- [Uniform Stage Interface](https://banes-lab.com/records/lex/uniform-stage-interface.md)

## reinforces

- [Single Responsibility Principle (SRP)](https://banes-lab.com/records/arch/single-responsibility.md)
- [Composability](https://banes-lab.com/records/arch/composability.md)

## enables

- [Reorderable Stages](https://banes-lab.com/records/lex/reorderable-stages.md)
- [Independent Stage Testing](https://banes-lab.com/records/lex/independent-stage-testing.md)

## conflicts-with

- [Monolithic Transform Function](https://banes-lab.com/records/lex/monolithic-transform-function.md)

## tensions-with

- [End-to-End Traceability](https://banes-lab.com/records/lex/end-to-end-traceability.md)

## tensions

- [Pipes and Filters End-to-End Traceability](https://banes-lab.com/records/tension/end-to-end-traceability-pipes-and-filters.md)
