@mjsax Thanks so much for the detailed review. I realized that your concern about ambiguity between the configured suppression time and the grace period was actually due to a regression I introduced earlier in refactoring.
I have made a couple of changes to resolve this: * `Suppressed` now only declares static factory methods (as it did initially). In particular, this ensures that we can rely on the config for `untilWindowClose` to be just as we create it in that method. It's not possible to mutate it afterwards. * I replaced the `isFinalResults` boolean in `SuppressedImpl` with a `FinalResultsSuppressionBuilder`. Previously, the code just assumed that some fields, like the suppress duration, would be null for final results `Suppressed` configs. Now, there is no ambiguity about that. I'm going to make a final pass over this diff myself, but otherwise, I think it's ready for (another) final review. Thanks! [ Full content available at: https://github.com/apache/kafka/pull/5567 ] This message was relayed via gitbox.apache.org for [email protected]
