Hi Dan, The default implementation in Flink [1] would first process all the timers before emit the watermark out, Thus the watermark should be after the records emitted in processing timers.
Best, Yun Gao [1] https://github.com/apache/flink/blob/ab08b52030a9612571896c579d85e000134ad0f1/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/AbstractStreamOperator.java#L600 ------------------------------------------------------------------ From:Dan Hill <quietgol...@gmail.com> Send Time:2022 Mar. 18 (Fri.) 13:38 To:user <user@flink.apache.org> Subject:Clarifying ProcessFunction.onTimer and watermark behavior Hi. This Flink page says the following: “With event-time timers, the onTimer(...) method is called when the current watermark is advanced up to or beyond the timestamp of the timer” The doc doesn't describe the behavior of the collect(...) in onTimer (related to timestamps and watermarks). If the watermark can be later than the timestamps, will the watermark propagation be delayed until the previous timers have fired? I'm evaluating corner cases in the operators that might cause watermarks to become more recent than record times.