Hi all, Recently, I was tracing the source code in streaming api and I was confused about some implementations.
When using reduce function with evictor, the *WindowStream* will wrap the *ReduceFunction* and *ProcessWindowFunction* into *ReduceApplyProcessWindonwFunction* and put it in *InternalIterableProcessWindowFunction*. So does fold function. However, when using aggregate, the *InternalIterableProcessWindowFunction* was changed to *InternalAggregateProcessWindowFunction* which was applied aggregation in the process() method. My question is why not implement an *AggregateApplyProcessWindowFunction* and use *InternalIterableProcessWindowFunction* instead just like reduce, fold function did. Is there any concern? Many thanks, Tony Wei