Hi John,

In general, we do not guarantee anything on APIs of the internal package. That is also the reason why you do not need a KIP to change those classes. Any class for which the build generates Javadoc is considered public API [1]. For public APIs we guarantee backwards compatibility.

Best,
Bruno

[1] https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals

On 12/18/23 1:46 PM, John Brackin wrote:
Hi all,

I have a question about using classes that are are public but the class is
contained in the internals packages  Generally, would it be supported if I
wrote Kafka code referencing these classes?

This question comes from an attempt to add a CacheListener to a
TimestampedKeyValueStore.  The line of code looks like this:

     cachingEnabled = ((WrappedStateStore) this.store).setFlushListener(new
AggregateCacheFlushListener<>(context), false);

To gain access to the setFlushListener the code needs to cast the
underlying state store object to a
org.apache.kafka.streams.state.internals.WrappedStateStore object.

Kind regards,
John Brackin

Reply via email to