Hi Andrey, > the answer is yes, it is backed by state backend (should be RocksDB if you > configure it), > you can trace it through these method calls: > > sourceStream.keyBy(…) > .timeWindow(Time.seconds(…)) > .trigger(CountTrigger.of(…)) > gives you WindowedStream, > WindowedStream.aggregate(new MyAggFunc()) creates: > new WindowOperator(windowStateDescriptor = new AggregatingStateDescriptor()), > inside WindowOperator: > WindowOperator.open() uses configured backend to create windowState, > WindowOperator.processElement() uses windowState which is AggregatingState.
Thank you for the answer. This is great! It also confirms my observation that the heap wasn’t growing indefinitely when I do this. Ning