[ 
https://issues.apache.org/jira/browse/KAFKA-20307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthias J. Sax updated KAFKA-20307:
------------------------------------
    Component/s: streams

> Add Interactive Queries (IQv1) support for headers-aware stores
> ---------------------------------------------------------------
>
>                 Key: KAFKA-20307
>                 URL: https://issues.apache.org/jira/browse/KAFKA-20307
>             Project: Kafka
>          Issue Type: Sub-task
>          Components: streams
>            Reporter: Alieh Saeedi
>            Assignee: Alieh Saeedi
>            Priority: Major
>
>  Problem
> The new headers-aware state stores (TimestampedKeyValueStoreWithHeaders and 
> TimestampedWindowStoreWithHeaders) cannot be queried using the existing 
> Interactive Queries v1 (IQv1) API. Users attempting to query these stores via 
> QueryableStoreTypes.keyValueStore() or 
> QueryableStoreTypes.timestampedKeyValueStore() will fail because 
> QueryableStoreTypes doesn't recognize headers-aware stores as valid store 
> types
>   2. State restoration doesn't know which format to use for headers-aware 
> stores
>   Proposed Solution
>   Enable backward compatibility by:
>   1. Store Type Recognition - Update QueryableStoreTypes to accept 
> headers-aware stores
>   2. Automatic Facade Wrapping - Modify GlobalStateStoreProvider and 
> StreamThreadStateStoreProvider to wrap headers-aware stores with facades that 
> strip headers/timestamps as needed
>   3. Restoration Support - Add StateManagerUtil.converterForStore() to 
> determine correct restoration format for any store type
>   4. Read-Only Decorator - Add decorator for headers-aware stores to prevent 
> writes during queries
>   Expected Behavior
>   Users can query headers-aware stores using existing IQv1 code without 
> modifications:
>   - keyValueStore() → returns plain values (headers and timestamps stripped)
>   - timestampedKeyValueStore() → returns ValueAndTimestamp<V> (headers 
> stripped)
>   - windowStore() → returns plain values (headers and timestamps stripped)
>   - timestampedWindowStore() → returns ValueAndTimestamp<V> (headers stripped)
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to