# Single-Pass Processing

Record: `arch:single-pass-processing`
Kind: principle
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: contextual
Scope: algorithm, stream, parser
Canonical: https://banes-lab.com/ontology#arch-single-pass-processing

## Repair

- Refactored by: Fuse Passes, Use Iterator/Accumulator
- Detected by: multiple loops/materializations over same large input
- Violated by: repeated scans over large data where avoidable
- Measured by: pass count, memory use
- Enforced by: performance review

## requires

- [Forward-Only State Model](https://banes-lab.com/records/lex/forward-only-state-model.md)

## reinforces

- [Memory Efficiency](https://banes-lab.com/records/arch/memory-efficiency.md)

## enables

- [Large Input Handling](https://banes-lab.com/records/lex/large-input-handling.md)

## tensions-with

- [Global Optimization](https://banes-lab.com/records/lex/global-optimization.md)
- [Multi-Pass Full Materialization](https://banes-lab.com/records/lex/multi-pass-full-materialization.md)

## tensions

- [Single-Pass Processing Global Optimization](https://banes-lab.com/records/tension/global-optimization-single-pass-processing.md)
- [Single-Pass Processing Multi-Pass Full Materialization](https://banes-lab.com/records/tension/multi-pass-full-materialization-single-pass-processing.md)

## referenced-by

- [Streaming Architecture](https://banes-lab.com/records/arch/streaming-architecture.md)
- [Forward-Only Processing](https://banes-lab.com/records/arch/forward-only-processing.md)
