Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

KIP-479, implemented in Kafka 2.4.0, added `StreamJoined` StreamJoined to Kafka Streams as a way to extend features of `Materialized` Materialized to stream-stream joins. During the KIP discussion, adding options to disable caching and logging were discussed but not implemented through KIP-479. Adding these features allows users more flexibility over their store and fits with the original goal of extending `Materialized` Materialized features to stream-stream joins.

...

This KIP will add the following four methods as well as `loggingEnabled` loggingEnabled and `cachingEnabled` cachingEnabled variables.

Code Block
titleMethods Added to StreamJoined
public StreamJoined<K, V1, V2> withLoggingEnabled(final WindowBytesStoreSupplier otherStoreSupplier) {}

public StreamJoined<K, V1, V2> withLoggingDisabled(final WindowBytesStoreSupplier otherStoreSupplier) {}

public StreamJoined<K, V1, V2> withCachingEnabled(final WindowBytesStoreSupplier otherStoreSupplier) {}

public StreamJoined<K, V1, V2> withCachingDisabled(final WindowBytesStoreSupplier otherStoreSupplier) {}

...

We will add four new methods to `StreamJoined` StreamJoined to allow users to determine whether they want logging and caching for their stores. These configs set the caching and logging decision for both stores, meaning that if logging is disabled for `thisWindowStore` thisWindowStore, it will also be disabled for `otherWindowStore` otherWindowStore. The default value for both `loggingEnabled` loggingEnabled and `cachingEnabled` cachingEnabled will be `true` true, enabling caching and logging for both stores if the user does not set the values manually.

...

Rejected Alternatives

  • Including `withRetentionPeriodwithRetentionPeriod()` → skipped as there is no reason for a user to configure a certain retention time for joins