Description
KafkaStreams follows an eager execution model, ie, it never buffers input records but processes them right away. For left/outer stream-stream join, this implies that left/outer join result might be emitted before the window end (or window close) time is reached. Thus, a record what will be an inner-join result, might produce a eager (and spurious) left/outer join result.
We should change the implementation of the join, to not emit eager left/outer join result, but instead delay the emission of such result after the window grace period passed.
Attachments
Issue Links
- causes
-
KAFKA-13216 Streams left/outer joins cause new internal changelog topic to grow unbounded
- Resolved
-
KAFKA-13813 left/outer joins can wait indefinitely for emitted record with spurious record fix
- Open
-
KAFKA-12909 Allow users to opt-into spurious left/outer stream-stream join improvement
- Resolved
- links to