Windows close on our clock, not the exchange’s
Every window keys on the moment our producer received the event, not the timestamp the exchange stamped on it. An exchange-time window cannot close until a late enough exchange clock reading arrives, which puts the whole network leg and every exchange batching delay inside the watermark. Keying on capture time also means a bar holds what you could actually have seen by its close: no look-ahead in a backtest.