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
<https://kafka.apache.org/0100/javadoc/org/apache/kafka/streams/kstream/Aggregator.html>
 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
ignored.

Reply via email to