Victor van den Hoven created KAFKA-15417:
--------------------------------------------

             Summary: JoinWindow does not  seem to work properly with a KStream 
- KStream - LeftJoin()
                 Key: KAFKA-15417
                 URL: https://issues.apache.org/jira/browse/KAFKA-15417
             Project: Kafka
          Issue Type: Bug
          Components: streams
    Affects Versions: 3.4.0
            Reporter: Victor van den Hoven
         Attachments: SimpleStreamTopology.java, SimpleStreamTopologyTest.java

In Kafka-streams 3.4.0 :

According to the javadoc of the Joinwindow:

_There are three different window configuration supported:_
 * _before = after = time-difference_
 * _before = 0 and after = time-difference_
 * _*before = time-difference and after = 0*_

 

However if I use a joinWindow with *before = time-difference and after = 0* 
on a kstream-kstream-leftjoin the *after=0* part does not seem to work.

When using _stream1.leftjoin(stream2, joinWindow)_ with 
{_}joinWindow{_}.{_}after=0 and joinWindow.before=30s{_}, any new message on 
stream 1 that can not be joined with any messages on stream2 should be joined 
with a null-record after the _joinWindow.after_ has ended and a new message has 
arrived on stream1.

It does not.

Only if the new message arrives after the value of _joinWindow.before_ the 
previous message will be joined with a null-record.

 

Attached you can find two files with a TopologyTestDriver Unit test to 
reproduce.

topology:   stream1.leftjoin( stream2, joiner, joinwindow)

joinWindow has before=5000ms and after=0

message1(key1) ->  stream1

after 4000ms message2(key2) -> stream1  ->  NO null-record join was made, but 
the after period was expired.
after 4900ms message2(key2) -> stream1  ->  NO null-record join was made, but 
the after period was expired.
after 5000ms message2(key2) -> stream1  ->  A null-record join was made,  
before period was expired.
after 6000ms message2(key2) -> stream1  ->  A null-record join was made,  
before period was expired.



 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to