You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by Bill Bejeck <bb...@apache.org> on 2021/02/19 22:26:47 UTC

[DISCUSS] KIP-149 (reloaded)

All,

KIP-149 has been approved for a while now, but parts of it remain
un-implemented.  I have submitted a new PR  adding read-only access to the
join-key for KStream joins to set the value resulting from the join (
https://github.com/apache/kafka/pull/10150).


The original KIP did not include the `KTable` interface.  I've updated the
KIP to include KTables, including the foreign key join variants.
https://cwiki.apache.org/confluence/display/KAFKA/KIP-149%3A+Enabling+key+access+in+ValueTransformer%2C+ValueMapper%2C+and+ValueJoiner


Right now, I can't come up with a reason as to why we would not want to
include the KTable interface, and nothing was mentioned on the original
discussion thread
<https://www.mail-archive.com/dev@kafka.apache.org/msg71509.html>.

Additionally, the changes in PR 10150 do not affect the Scala API.

But in attempting to add the new feature in the Scala API, the same
approach of overloading the `join` method with a `ValueJoinerWIthKey`  in
Scala results in an "Ambiguous reference to overloaded definition" error.

From a cursory search, I think this could be resolved with the release of
Scala 3.0.   But in the meantime, we are left with two choices:

   1. Create a Jira ticket to add the join-key access to the Scala API at a
   later date
   2. Add it to the Scala API, but with a different name

For the Scala API, I'm leaning towards option 1, but I wanted to get the
community's thoughts.

Thanks,
Bill