I think it has smth to do with parallelism and I probably do not have clear understanding how parallelism works in flink but in this example:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); DataStreamSource<Long> source = env.addSource(new SourceFunction<Long>() { @Override public void run(SourceContext<Long> ctx) throws Exception { LongStream.range(0, 29).forEach(ctx::collect); } @Override public void cancel() { } }); source.countWindowAll(10).apply(new AllWindowFunction<Long, Long, GlobalWindow>() { @Override public void apply(GlobalWindow window, Iterable<Long> values, Collector<Long> out) throws Exception { for (Long value : values) { if (value % 3 == 0) { out.collect(value); } } } }).print(); env.execute("yoyoyo"); Why my output is like this: 4> 9 1> 0 1> 12 3> 6 3> 18 2> 3 2> 15 ? I.e. where id s value of 24 for example? I expect to see it. What am I doing wrong?