KIP-1300 — Update KStream-KStream Join to Use Plain-Value-Header Window Stores
Discussion Streams
Introduces a `WindowStoreWithHeaders` and a `ValueAndHeaders` value wrapper that serialize window-store values as `[headersSize(varint)][headersBytes][value]`, and rewires the KStream-KStream join onto it instead of `TimestampedWindowStoreWithHeaders`. The join already reads the record timestamp from the window-store key and never reads the timestamp embedded in the stored value, so the current format wastes 8 bytes per record — roughly 7.3% of the store for 100-byte values in high-throughput join workloads.
Details
| Author | PoAn Yang |
| Status | Discussion |
| JIRA | KAFKA-20334 |
| Wiki | View on Apache Wiki |
| Created | 2026-03-29 |
| Last Modified | 2026-03-29 |
Explore how this KIP affects the Kafka protocol in the Protocol Explorer, or see the full KIP database.