reygrep
U zadaku imamo .withEarlyFirings(AlignedDelay(ONE_MINUTE))
Sto znaci da kad se dode do nekog elementa (npr 1) i ako je on early (nije u istom trenutku kad i watermark) onda cekaj do PUNE minute odnosno za 1 cekaj do 12:06, za 3 cekaj do 12:07 - ali u 12:07 je watermark pa 3-cu ce pokupiti taj watermark, a ne early
U window 2 prvo dolazimo do 5 koji se emit-a u 12:07 i nakon tog je on zabroavljen zbog ovog
.discardingFiredPanes())
Da je tu stajao onaj accumulatingAndRetractingFiredPanes
onda bi pamtili taj 5 do sljedeceg elementa (npr 6), a onda bi zbrojili i imali bi 11 i odbacili bi ovu staru vrijednost 5
Sljedeci dolazi 6 i on ceka punu minutu tj 12:08 da se emit-a, ali prije tog nailazi na 4 pa se to zbraja skupa u 10 zbog .apply(Sum.integersPerKey());
Oni se emitaju prije watermarka (zato su early) jer je njihovo vrijeme u 12:08, a watermark je tek nakon tog
Ukratko 1 i 3 su u razlicitim minutama emitani, a 3 je u istoj minuti kao watermark pa je on OnTime
5 je Early
4 i 6 su u istoj minuti pa se zbrajaju i prije watermarka su pa su early (12:08, a watermark je recimo u 12:08:30)