[ https://issues.apache.org/jira/browse/KAFKA-4153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15485759#comment-15485759 ]
Matthias J. Sax commented on KAFKA-4153: ---------------------------------------- IMHO {{JoinWindows.before(100).after(50)}} would not be a good choice -- the user could just call only {{JoinWindows.before(100)}} creating a window with undefined value for after. For me, the API should ensure, that defining and invalid window is not possible (instead of check for this condition and throw an exception later on). > Incorrect KStream-KStream join behavior with asymmetric time window > ------------------------------------------------------------------- > > Key: KAFKA-4153 > URL: https://issues.apache.org/jira/browse/KAFKA-4153 > Project: Kafka > Issue Type: Bug > Components: streams > Affects Versions: 0.10.0.1 > Reporter: Elias Levy > Assignee: Guozhang Wang > > Using Kafka 0.10.0.1, if joining records in two streams separated by some > time, but only when records from one stream are newer than records from the > other, i.e. doing: > {{stream1.join(stream2, valueJoiner, JoinWindows.of("X").after(10000))}} > One would expect that the following would be equivalent: > {{stream2.join(stream1, valueJoiner, JoinWindows.of("X").before(10000))}} > Alas, that this is not the case. Instead, this generates the same output as > the first example: > {{stream2.join(stream1, valueJoiner, JoinWindows.of("X").after(10000))}} > The problem is that the > [{{DefaultJoin}}|https://github.com/apache/kafka/blob/caa9bd0fcd2fab4758791408e2b145532153910e/streams/src/main/java/org/apache/kafka/streams/kstream/internals/KStreamImpl.java#L692-L697] > implementation in {{KStreamImpl}} fails to reverse the {{before}} and > {{after}} values when creates the {{KStreamKStreamJoin}} for the other > stream, even though is calls {{reverseJoiner}} to reverse the joiner. -- This message was sent by Atlassian JIRA (v6.3.4#6332)