Versions Compared

Key

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

...

The more intrusive version gives the user better clarity that his resulting KTable is not only keyed by B the other table's key but its also keyed by Athis table's key. So he will be less surprised that in a theoretical later aggregation he might find the same B- key twice with different A-keys joined to themfrom the other ktable twice. On the other hand the less intrusive method doesn't need to introduce this wrapper class but let the user handle the need of having A' and B's key present in the output key himself. This might lead to a deeper understanding for the user and serdes might be able to pack the data denser. An additional benefit is that the user can stick with his default serde or his standard way of serializing when sinking the data into another topic using for example to() while the CombinedKey would require an additional mapping to what the less intrusive method has.

...

With the two relations A,B and there is one A for each B and there may be many B's for each A. A is represented by the KTable the method described above gets invoked on, while B is represented by that methods first argument. We want to implement a Set of processors that allows a user to create a new KTable where A and B are joined based on the reference to A in B. A and B are represented as KTable B being partitioned by B's key and A being partitioned by A's key.

...