Versions Compared

Key

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

...

With this in mind, this KIP aims to add a new configuration object StreamJoined. The StreamJoined configuration allows users to specify Serdes for the join, naming of join processor, the base name of the default state stores, and provide store suppliers.  Essentially a merging of Joined and Materialized configuration objects.  We'll add an overloaded KStream#join method accepting a StreamJoined parameter without a Joined parameter. The overloads will apply to all flavors of KStream#join (join, left, and outer).  Due to the significant overlap of the new StreamJoined configuration, we'll also deprecate the KStream join methods taking the Joined configuration object and methods using Joined as wellas a parameter.

This will allow for users who wish to upgrade to 2.4 without having to make a breaking change. Now the Joined#as method will only name the Join processor and repartition topics and no longer name the associated state stores and changelog topics. So if users wish to upgrade to 2.4 and don't provide a name for the states stores, it will continue to use the auto-generated name in 2.3. Of course, if users elect to name the state stores, they can do so via StreamJoined#as("store name"). Naming the store is recommended to pin the changelog topic names in case of any upstream topology changes.

...