Seems like there are many questions on SO and related about "how do I know
when my windowed aggregation is 'done'?" The answer has always been "It's
never done. You're thinking about it the wrong way."
I propose a new function for KStream:
finiteAggregateByKey(Initializer, Aggregator, Windows, Timeout)
where 'Timeout' would be a struct of how many seconds after the window is
finished and a topic to dump the resultant values to.
EG I have a topic 'bar' with an 'rolling' aggregator of 20 minutes / 1
minute. During the 20 minutes it's building a list of things from the 'bar'
topic. I tell it to terminate 5 minutes after the initial 20 have elapsed
and write out the final values from 'T
aggregate' to a topic 'allBar'. This would allow me to put a consumer on
that topic and watch for new entries.
Subsequent values that would have matched said aggregator-window above are