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]
