Inherited from StateHolder[MapT[Long, AnyRef]]
Inherited from KeyedProcessFunction[String, ValueWithContext[StringKeyedValue[AnyRef]], ValueWithContext[AnyRef]]
Inherited from AbstractRichFunction
Inherited from RichFunction
Inherited from Function
Inherited from Serializable
Inherited from AnyRef
Inherited from Any
It behaves similar to Flink's TumblingWindow with one difference that we produce extra zero aggregate for each key when no data arrived. For this purpose we've used
AggregatorFunctionMixin
withminimalResolutionMs = timeWindowLengthMillis
. We use it because it handles out of order elements. The other difference from AggregatorFunction is that we emit event only in timer and handle state eviction on ours own.