[
https://issues.apache.org/jira/browse/KAFKA-12909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17521492#comment-17521492
]
Patrik Kleindl commented on KAFKA-12909:
----------------------------------------
[~mjsax] My understanding was that JoinWindows
(https://kafka.apache.org/31/javadoc/org/apache/kafka/streams/kstream/JoinWindows.html)
only limits the timeframe for the comparison of timestamps, not that a result
can only be emitted at the end of the window.
Maybe I missed that in the general documentation, but does it say that windows
should only ever emit one result at the end?
>From a database perspective I would see a result on a left join as soon as
>something has happened there, an of course it will only be an intermediate
>result but not incorrect. Unless someone prevents me from looking until the
>whole "window" is over.
In Kafka Streams I would expect a result when something happens on the left
side and it will stay correct until something happens on the right side too. Or
the left side gets nulled, which I am not sure if this is a thing regarding a
KStream.
> Allow users to opt-into spurious left/outer stream-stream join improvement
> --------------------------------------------------------------------------
>
> Key: KAFKA-12909
> URL: https://issues.apache.org/jira/browse/KAFKA-12909
> Project: Kafka
> Issue Type: Improvement
> Components: streams
> Reporter: Matthias J. Sax
> Assignee: Matthias J. Sax
> Priority: Blocker
> Fix For: 3.1.0
>
>
> https://issues.apache.org/jira/browse/KAFKA-10847 improves left/outer
> stream-stream join, by not emitting left/outer results eagerly, but only
> after the grace period passed.
> While this change is desired, there is an issue with regard to upgrades: if
> users don't specify a grace period, we fall back to a 24h default. Thus,
> left/outer join results would only be emitted 24h after the join window end.
> This change in behavior could break existing applications when upgrading to
> 3.0.0 release. – And even if users do set a grace period explicitly, it's
> still unclear if the new delayed output behavior would work for them.
> Thus, we propose to disable the fix of KAFAK-10847 by default, and let user
> opt-into the fix explicitly instead.
> To allow users to enable the fix, we want to piggy-back on KIP-633
> (https://issues.apache.org/jira/browse/KAFKA-8613) that deprecated the
> existing `JoinWindows.of()` and `JoinWindows#grace()` methods in favor of
> `JoinWindows.ofSizeAndGrace()` – if users don't update their code, we would
> keep the fix disabled, and thus, if users upgrade their app nothing changes.
> Only if users switch to the new `ofSizeAndGrace()` API, we enable the fix and
> thus give users the opportunity to opt-in expliclity and pick an appropriate
> grace period for their application.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)