mjsax commented on code in PR #18721: URL: https://github.com/apache/kafka/pull/18721#discussion_r1934937573
########## streams/src/main/java/org/apache/kafka/streams/kstream/KStream.java: ########## @@ -2054,23 +2057,26 @@ <VO, VR> KStream<K, VR> outerJoin(final KStream<K, VO> otherStream, final ValueJoinerWithKey<? super K, ? super V, ? super VO, ? extends VR> joiner, final JoinWindows windows, final StreamJoined<K, V, VO> streamJoined); + /** - * Join records of this stream with {@link KTable}'s records using non-windowed inner equi join with default - * serializers and deserializers. - * The join is a primary key table lookup join with join attribute {@code stream.key == table.key}. + * Join records of this stream with {@link KTable}'s records using non-windowed inner equi-join. + * The join is a primary key table lookup join with join attribute {@code streamRecord.key == tableRecord.key}. * "Table lookup join" means, that results are only computed if {@code KStream} records are processed. - * This is done by performing a lookup for matching records in the <em>current</em> (i.e., processing time) internal - * {@link KTable} state. + * This is done by performing a lookup for matching records into the internal {@link KTable} state. * In contrast, processing {@link KTable} input records will only update the internal {@link KTable} state and * will not produce any result records. - * <p> - * For each {@code KStream} record that finds a corresponding record in {@link KTable} the provided + * + * <p>For each {@code KStream} record that finds a joining record in the {@link KTable} the provided * {@link ValueJoiner} will be called to compute a value (with arbitrary type) for the result record. * The key of the result record is the same as for both joining input records. - * If an {@code KStream} input record key or value is {@code null} the record will not be included in the join - * operation and thus no output record will be added to the resulting {@code KStream}. - * <p> - * Example: + * If you need read access to the join key, use {@link #join(KTable, ValueJoinerWithKey)}. + * If a {@code KStream} input record's key or value is {@code null} the input record will be dropped, and no join + * computation is triggered. + * If a {@link KTable} input record's key is {@code null} the input record will be dropped, and the table state + * won't be updated. + * {@link KTable} input records with {@code null} values are considered deletes (so-called tombstone) for the table.* Review Comment: ```suggestion * {@link KTable} input records with {@code null} values are considered deletes (so-called tombstone) for the table. ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org