Strict buffering is a Kafka Streams suppression policy that retains intermediate window results and emits none until the window closes, guaranteeing a final result without duplicates. section 9.3 section 9.3.1
Strict buffering makes an explicit reliability-versus-capacity tradeoff:
- Retains results for each key until the associated window closes. section 9.3
- Guarantees one final windowed result and prevents early downstream updates. section 9.3
- Can use a record or byte limit; exceeding that limit triggers a graceful application shutdown. section 9.3.1
- Leaves the unbounded configuration exposed to possible out-of-memory failure when buffered state grows too large. section 9.3
Bounded final-result suppression
A session aggregation can suppress updates until its window closes and shut down gracefully if more than 10,000 records accumulate: .suppress(untilWindowCloses(maxRecords(10_000)).shutDownWhenFull()). section 9.3.1
