Hey Alieh, some comments:
* "Compatibility" section wasn't clear to me. Are we just introducing the interfaces or are we changing the default behavior? If so, that should be explained in more detail. * If we are introducing a new interface `ClientExceptionHandler`, what is it going to be used for? Will TranscationExceptionHandler be the only class implementing it? Should the existing streams exception handlers also extend it? * How do I configure a producer to use a custom exception handler? * nit: the intro mentions "this ticket", but it's a KIP Cheers, Lucas On Wed, Apr 17, 2024 at 6:25 PM Justine Olshan <jols...@confluent.io.invalid> wrote: > > Hey Alieh, > > I echo what Omnia says, I'm not sure I understand the implications of the > change and I think more detail is needed. > > This comment also confused me a bit: > * {@code ClientExceptionHandler} that continues the transaction even if a > record is too large. > * Otherwise, it makes the transaction to fail. > > Relatedly, I've been working with some folks on a KIP for transactions > errors and how they are handled. Specifically for the > RecordTooLargeException (and a few other errors), we want to give a new > error category for this error that allows the application to choose how it > is handled. Maybe this KIP is something that you are looking for? Stay > tuned :) > > Justine > > > > > > On Wed, Apr 17, 2024 at 8:03 AM Omnia Ibrahim <o.g.h.ibra...@gmail.com> > wrote: > > > Hi Alieh, > > Thanks for the KIP! I have couple of comments > > - You mentioned in the KIP motivation, > > > Another example for which a production exception handler could be useful > > is if a user tries to write into a non-existing topic, which returns a > > retryable error code; with infinite retries, the producer would hang > > retrying forever. A handler could help to break the infinite retry loop. > > > > How the handler can differentiate between something that is temporary and > > it should keep retrying and something permanent like forgot to create the > > topic? temporary here could be > > the producer get deployed before the topic creation finish (specially if > > the topic creation is handled via IaC) > > temporary offline partitions > > leadership changing > > Isn’t this putting the producer at risk of dropping records > > unintentionally? > > - Can you elaborate more on what is written in the compatibility / > > migration plan section please by explaining in bit more details what is the > > changing behaviour and how this will impact client who are upgrading? > > - In the proposal changes can you elaborate in the KIP where in the > > producer lifecycle will ClientExceptionHandler and > > TransactionExceptionHandler get triggered, and how will the producer > > configure them to point to costumed implementation. > > > > Thanks > > Omnia > > > > > On 17 Apr 2024, at 13:13, Alieh Saeedi <asae...@confluent.io.INVALID> > > wrote: > > > > > > Hi all, > > > Here is the KIP-1038: Add Custom Error Handler to Producer. > > > < > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-1038%3A+Add+Custom+Error+Handler+to+Producer > > > > > > I look forward to your feedback! > > > > > > Cheers, > > > Alieh > > > >