Hey there Gunnar! Are you using TwoInputNonBroadcastStreamProcessFunction
<https://github.com/apache/flink/blob/538c24c8bf490eb8870c4d39c8ac5b204d3613ee/flink-datastream-api/src/main/java/org/apache/flink/datastream/api/function/TwoInputNonBroadcastStreamProcessFunction.java>
?

Is the watermark definition on the method declareWatermarks?

If so, I think you may want to add defaultHandlingStrategyForward()
<https://github.com/apache/flink/blob/538c24c8bf490eb8870c4d39c8ac5b204d3613ee/docs/content/docs/dev/datastream-v2/watermark.md?plain=1#L97-L105>
to your builder. This will make sure the watermark is forwarded. If you
want to control it by yourself, I think you have to override
the onWatermark method.


This is not knowledge from living it. I was just playing with something
similar. Hope it helps :D



Att,
Pedro Mázala
Be awesome


On Tue, 30 Sept 2025 at 11:31, Gunnar Morling <[email protected]>
wrote:

> Hey all,
>
> Is there an example which shows the usage of watermarks with joins in the
> DS V2 API? Specifically, I'd like to propagate the minimum watermark of the
> two joined streams. Here's my watermark declaration:
>
>     public static final LongWatermarkDeclaration WATERMARK_DECLARATION =
> WatermarkDeclarations
>         .newBuilder("MY_CUSTOM_WATERMARK_IDENTIFIER")
>         .typeLong()
>         .combineFunctionMin()
>         .combineWaitForAllChannels(true)
>         .build();
>
> I'm observing though that all watermarks from either side are propagated
> downstream, also if there's a lower watermark on the other side. Does this
> ring a bell for anyone?
>
> Thanks a lot,
>
> --Gunnar
>
>

Reply via email to