Ok, * fwiw: I 100% agree that it's not this component's job to verify other aspects of the window spec. It should only care about grace period. * I think the semantics are perfectly well defined with `max`, and I buy these arguments that it's unnecessary to fail. I'd like to log a warning (just during the topology build) in case the mis-match was accidental.
@guozhangwang : I agree with @mjsax , I don't think that `min` has the right semantics. The purpose of configuring the suppression interval equal to the grace period to begin with is that we already know that the window results will never be updated after the grace period ends. If we set the suppression smaller than the grace period (or in this case _one_ of the grace periods), then there will be an inconsistency between the aggregation results upstream vs. downstream of suppression. In fact, it's generally ok if we make the suppression interval _larger_ than the grace period. It just means that we'll emit the final result "after" the window closes, not "at" the window close. Thus, `max` satisfies everyone's semantics and ensures consistent results throughout the topology. The "more graceful" parent will see its final results close after its grace period expires, and the "less graceful" one has to wait longer, but they will both never see their materialized state differ from the results downstream of the suppression. [ Full content available at: https://github.com/apache/kafka/pull/5567 ] This message was relayed via gitbox.apache.org for [email protected]
