# Forward-Only Processing

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

## Repair

- Refactored by: Add Rolling State, Redesign Parser
- Detected by: buffering full stream to look back
- Violated by: requiring prior/future full data in stream path
- Measured by: buffer size, pass count
- Enforced by: memory tests

## requires

- [No Backtracking Requirement](https://banes-lab.com/records/lex/no-backtracking-requirement.md)

## reinforces

- [Single-Pass Processing](https://banes-lab.com/records/arch/single-pass-processing.md)

## enables

- [Streaming Parsers](https://banes-lab.com/records/lex/streaming-parsers.md)

## tensions-with

- [Complex Grammar/Global State](https://banes-lab.com/records/lex/complex-grammar-global-state.md)
- [Backtracking Algorithm](https://banes-lab.com/records/lex/backtracking-algorithm.md)

## tensions

- [Forward-Only Processing Complex Grammar/Global State](https://banes-lab.com/records/tension/complex-grammar-global-state-forward-only-processing.md)
- [Forward-Only Processing Backtracking Algorithm](https://banes-lab.com/records/tension/backtracking-algorithm-forward-only-processing.md)
