# Streaming Architecture

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

## Repair

- Refactored by: Use Stream Processor, Add Backpressure
- Detected by: unbounded collection over stream source
- Violated by: materializing unbounded streams
- Measured by: lag, [throughput](https://banes-lab.com/records/arch/throughput.md), memory usage
- Enforced by: load/memory tests

## requires

- [Event Stream](https://banes-lab.com/records/arch/event-stream.md)
- [Backpressure](https://banes-lab.com/records/arch/backpressure.md)

## reinforces

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

## enables

- [Continuous Processing](https://banes-lab.com/records/lex/continuous-processing.md)

## tensions-with

- [Ordering/State](https://banes-lab.com/records/lex/ordering-state.md)
- [Batch-Only Processing](https://banes-lab.com/records/lex/batch-only-processing.md)

## tensions

- [Streaming Architecture Ordering/State](https://banes-lab.com/records/tension/ordering-state-streaming-architecture.md)
- [Streaming Architecture Batch-Only Processing](https://banes-lab.com/records/tension/batch-only-processing-streaming-architecture.md)

## referenced-by

- [Event Stream](https://banes-lab.com/records/arch/event-stream.md)
- [Windowing](https://banes-lab.com/records/arch/windowing.md)
