kafka 流中 joinWindows.of 与 joinWindows.until 之间的区别?

Difference between joinWindows.of vs joinWindows.until in kafka streams?

我试图在进行左连接时了解 joinWindows.of 与 joinWindows.until 之间的区别。例如

Stream1.leftJoin(Stream2,SomeJoinerValue,joinWindows.of(2 mins).until(5 mins))

根据文档我的理解,只要 Stream1 和 Stream2 之间的时间差小于 2 分钟,就会执行成功的加入而不会从流中删除任何内容。
我的问题是,windows 5 分钟的保留期有什么用?

window 保留期是 window 日志如何保存和接受新输入数据的下限。这是处理乱序记录所必需的。连接基于事件时间,因此不能保证所有记录都按时间戳顺序处理。事实上,Kafka Streams 以偏移顺序处理记录。