Hello Alieh, Thanks for the KIP! The proposal looks very interesting.
I have two questions/observations: bloku_1: It makes sense that headers in the changelog topic would be stored as native Kafka record headers. This became clear to me after following the discussion thread, but I couldn't find an explicit mention of it in the KIP document itself. Should we document this explicitly in the KIP to avoid any ambiguity? bloku_2: While I support the decision to move the DSL stores update to a separate KIP, I’m curious about the exclusion of non-timestamped stores. If we are already touching the PAPI (Processor API) for this change, wouldn't it make sense to include non-timestamped stores as well, or is there a specific technical constraint keeping them out of scope for now? Looking forward to your response, Uladzislau Blok On Fri, Jan 16, 2026 at 6:03 PM Alieh Saeedi via dev <[email protected]> wrote: > Updates to KIP > > - > > 1- A varint header_size field is introduced to enable lazy deserialization > when scanning large ranges. > - > > 2- The current serialization/deserialization methods in StateSerdes are > marked as deprecated to keep the class concise. > - > > 3- Note that VersionedKeyValueStoreWithHeaders cannot extend > VersionedKeyValueStore because their methods differ in input and/or output > types. In particular, the VersionedRecord returned by > VersionedKeyValueStore > methods is a final class and therefore cannot be subclassed. > > Thanks, > Alieh > > On Thu, Jan 15, 2026 at 4:46 PM Chia-Ping Tsai <[email protected]> wrote: > > > chia_03: Regarding the header size, using a Varint is consistent with > > Kafka's serialization standards. It avoids the overhead of a large > > fixed-size field while still achieving the efficient skipping capability > we > > want. > > > > chia_04: That makes sense. > > > > Alieh Saeedi via dev <[email protected]> 於 2026年1月15日週四 下午10:59寫道: > > > >> Hi Chia-Ping Tsai, > >> > >> Thanks for the feedback. > >> > >> chia_03: The difficulty with adding a header length is deciding between > a > >> fixed-size field for all records or a configuration allowing users to > >> define a maximum. Alternatively, we could consider using a varint for > the > >> header length to remain flexible and space-efficient. > >> > >> chia_04: > >> It only makes sense to give the second column family its own RocksDB > >> config if its access pattern or data characteristics are materially > >> different. > >> Here we have the same keys, the > >> same or very similar read/write patterns (e.g., same get, put, range > >> queries), > >> and roughly comparable value sizes (CF2 slightly larger per entry). > >> Then from RocksDB’s perspective the two CFs behave very similarly: > >> both are generic key–value blobs, written and read with the same > >> pattern. Most of the important RocksDB options (compaction style, > >> write buffer sizes, block cache, bloom filters, etc.) would be tuned > >> the same way for both. > >> Do you see huge difference between these two? > >> > >> Thanks, > >> Alieh > >> > >> On Thu, Jan 15, 2026 at 3:03 AM Chia-Ping Tsai <[email protected]> > >> wrote: > >> > >> > hi > >> > > >> > chia_03: should we provide a more effective way to load the value > >> without > >> > scanning the header bytes? (e.g., by storing the total size of > headers) > >> > > >> > chia_04: Do we need to allow separate Rocksdb configuration for the > new > >> > column family > >> > > >> > Best, > >> > Chia-Ping > >> > > >> > On 2026/01/09 22:14:18 Alieh Saeedi via dev wrote: > >> > > Hi all, > >> > > > >> > > I’d like to start a discussion on KIP-1271, which proposes allowing > >> Kafka > >> > > Streams state stores to preserve record headers. > >> > > This would let header-based metadata like schema IDs, tracing info, > >> and > >> > > feature flags be stored and restored alongside values. > >> > > The KIP introduces header-aware store types and a small config to > cap > >> the > >> > > size of headers written into state. > >> > > Details are in the KIP: > >> > > > >> > > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-1271%3A+Allow+to+Store+Record+Headers+in+State+Stores > >> > > . > >> > > I’d appreciate your feedback and questions on the proposal. > >> > > > >> > > Thanks, > >> > > Alieh > >> > > > >> > > >> > > >
