Ah, ok. I was hoping this is not how punctuations work (I'm ashamed to say I 
haven't looked at it yet). What I was hoping is that if I start at stream-time 
0ms and then get a record at time 100ms, then my 1ms punctuator would be 
invoked just once, at time 100ms. I.e., I was thinking it would "jump ahead" (I 
thought I observed this, but maybe it was using the `TopologyTestDriver`).

One alternative is to "brew my own" schedule exactly as I described, checking 
during `process` if there are any old-enough records. This could be done in the 
same loop that evicts if we're over capacity. This implementation would be very 
cheap.

The tradeoff is that the punctuator will be fired on any advancement in stream 
time, whether or not that record actually reaches the buffer. But the hack I 
described would only "tick" when `process` is invoked. I *think* this would 
probably be satisfactory semantics.

[ Full content available at: https://github.com/apache/kafka/pull/5693 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to