Skip to content

Conversation

@mshijin-ksolves
Copy link

Description: This change updates the documentation to introduce Interactive Queries v2 (IQv2) as a new API and improve user awareness, despite it currently being feature-incomplete.

The documentation now includes:

  • A brief overview of IQv2 and its working
  • A generic example demonstrating how to build and execute a query
  • Current limitations of IQv2
  • A comparison between IQv1 and IQv2, highlighting the improvements in IQv2

Please review the changes and provide feedback or suggestions for further improvements.

Ticket link:- https://issues.apache.org/jira/browse/KAFKA-16262

 if a specific Serde is used earlier in the code, it will reuse that one instead of looking at the global defaults.
1. Added a new file config/streams.properties.
2. This file includes most of the essential configuraions with their respective defaulf values.
3. Any Developer can use this file as a base template and override the specific configuration as per their requirements.
1. Added a new file config/streams.properties.
2. This file includes most of the essential configuraions with their respective defaulf values.
3. Any Developer can use this file as a base template and override the specific configuration as per their requirement.
1. Added a new file config/streams.properties.
2. This file includes most of the essential configurations with their respective default values.
3. Any Developer can use this file as a base template and override the specific configuration as per their requirement.
1. Added a new file config/streams.properties.
2. This file includes most of the essential configurations with their respective default values.
3. Any Developer can use this file as a base template and override the specific configuration as per their requirement.
1. Added a new file config/streams.properties.
2. This file includes most of the essential configurations with their respective default values.
3. Any Developer can use this file as a base template and override the specific configuration as per their requirement.
This reverts commit aa79e13.

# Conflicts:
#	config/streams.properties
1. Added a new file config/streams.properties.
2. This file includes most of the essential configurations with their respective default values.
3. Any Developer can use this file as a base template and override the specific configuration as per their requirement.
Documented Interactive Queries v2 in the Streams Interactive Queries developer guide.
The update positions IQv2 as the new API, includes a basic usage example, and clearly states that the API is not yet feature complete, while keeping IQv1 documented as the legacy API.
@github-actions github-actions bot added the triage PRs from the community label Jan 28, 2026
Signed-off-by: mshijin-ksolves <[email protected]>
@github-actions github-actions bot added docs small Small PRs labels Jan 28, 2026
@mjsax mjsax added streams and removed triage PRs from the community labels Jan 29, 2026
@mjsax mjsax changed the title Kafka-16262: Add IQv2 to Kafka Streams documentation KAFKA-16262: Add IQv2 to Kafka Streams documentation Jan 29, 2026
@mjsax
Copy link
Member

mjsax commented Jan 29, 2026

@aliehsaeedii for review :)

Copy link
Contributor

@aliehsaeedii aliehsaeedii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @mshijin-ksolves for bridging the gap. I made the first round of review.

IQv2 improves API safety, extensibility, and error handling by:

- Decoupling query definition from store internals
- Returning structured query results instead of throwing exceptions
Copy link
Contributor

@aliehsaeedii aliehsaeedii Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we add returns metadata (prtitions) beside query results?


```
// Build a query to fetch the value for a specific key
StateQueryRequest<KeyQuery<String, Long>> request =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you run this test? It needs to be StateQueryRequest<Long>


3. **Read the Result**
```
if (result.hasFailures()) {
Copy link
Contributor

@aliehsaeedii aliehsaeedii Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

StateQueryResult (result) does not provide these methods. First obtain a QueryResult object by calling one of the getPartitions... or getGlobalResult methods, and then invoke the methods on that object. Please verify this with a real example before posting the code. Thanks.

System.out.println("Query result: " + value);
}

## Comparison : Interactive Queries (IQv1) and (IQv2)
Copy link
Contributor

@aliehsaeedii aliehsaeedii Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: remove white-space before :
Could it be Comparison of IQv1 and IQv2?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants