Versions Compared

Key

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

...

This KIP won't change any public interfaces. However, It will change the behavior of the following operators

Operators:

  • left join Kstream-Kstream
  • outer join Kstream-Kstream
  • left-foreign-key join Ktable-Ktable
  • left  join KStream-Ktable
  • left  join KStream-GlobalTable

Repartition of null-key records:

Currently, repartitioning causes records with 'null'-keys to be dropped.
This behavior needs to be changed.
Going forward they will be sent to an arbitrary partition.

Proposed Changes

  • left join Kstream-Kstream: no longer drop left records with null-key and call ValueJoiner with 'null' for right value.
  • outer join Kstream-Kstream: no longer drop left/right records with null-key and call ValueJoiner with 'null' for right/left value.
  • left-foreign-key join Ktable-Ktable: no longer drop left records with null-foreign-key returned by the ForeignKeyExtractor and call ValueJoiner with 'null' for right value.
  • left join KStream-Ktable: no longer drop left records with null-key and call ValueJoiner with 'null' for right value.
  • left join KStream-GlobalTable: no longer drop left records with null-key and call KeyValueMapper with 'null' for left  key. The case where KeyValueMapper returns null is already handled in the current implementation.

...