...
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.
...