You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Siddhartha Devineni (Jira)" <ji...@apache.org> on 2026/03/15 10:39:00 UTC

[jira] [Comment Edited] (KAFKA-20313) Cleanup "leaking" internal interface `WindowedSerializer`

    [ https://issues.apache.org/jira/browse/KAFKA-20313?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18065959#comment-18065959 ] 

Siddhartha Devineni edited comment on KAFKA-20313 at 3/15/26 10:38 AM:
-----------------------------------------------------------------------

Hi Matthias,

I investigated the scope and found that `serializeBaseKey()` is exposed through `SessionWindowedSerializer` and `TimeWindowedSerializer`.

It is called in `WindowedStreamPartitioner (org.apache.kafka.streams.kstream.internals)` and `WindowedSerdesTest`.

The method is leaked through public classes and looks similar to KIP-1247 (Make Bytes part of public API) [https://cwiki.apache.org/confluence/display/KAFKA/KIP-1247%3A+Make+Bytes+utils+class+part+of+the+public+API]

I would like to work on this using a similar approach that you suggested previously in KIP-1247:
 * Deprecate serializeBaseKey() in public serializers
 * Create helper in internals package 
 * Update internal references 
 * Remove in version 5.0

Would you like me to take this up and draft a KIP?

Please let me know if you have any other approach in mind.

Thank you.


was (Author: JIRAUSER309328):
Hi Matthias,

I investigated the scope and found that `serializeBaseKey()` is exposed through `SessionWindowedSerializer` and `TimeWindowedSerializer`.

It is called in `WindowedStreamPartitioner (org.apache.kafka.streams.kstream.internals)` and `WindowedSerdesTest`.

The method is leaked through public classes but only used internally and this looks similar to KIP-1247 (Make Bytes part of public API) [https://cwiki.apache.org/confluence/display/KAFKA/KIP-1247%3A+Make+Bytes+utils+class+part+of+the+public+API]

I would like to work on this using a similar approach that you suggested previously in KIP-1247:
 * Deprecate serializeBaseKey() in public serializers
 * Create helper in internals package 
 * Update internal references 
 * Remove in version 5.0

Would you like me to take this up and draft a KIP?

Please let me know if you have any other approach in mind.

Thank you.

> Cleanup "leaking" internal interface `WindowedSerializer`
> ---------------------------------------------------------
>
>                 Key: KAFKA-20313
>                 URL: https://issues.apache.org/jira/browse/KAFKA-20313
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: Matthias J. Sax
>            Priority: Minor
>              Labels: needs-kip
>
> Kafka Streams has an internal helper interface `WindowedSerializer`, which the two public classes `TimeWindowedSerializer` and `SessionWindowedSerializer` implement.
> This leaks the internal method `serializeBaseKey` into public API. We should try to clean this up.
>  



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