Hi Kaushik,
Thanks for the KIP. This is definitely an area that needs clearing up so it’s 
good to see it.

A few initial questions.

1. If I understand correctly, you are proposing to change the superclass of all
subclasses of o.a.k.common.errors.ApiException which can be thrown by the 
producer
or transaction APIs. Is this accurate?

2. You have 4 exception types (and 2 subtypes) in the list in Proposed Changes. 
So, I
would expect 5 new exception classes with names with a direct correspondence to
the list of types, or at least an explicit statement of which of the new 
exceptions
maps to each of the types. For example, “Producer-Recoverable” doesn’t seem to
have a new exception. I’m a bit confused.

3. Some of the error types, the “producer retriable” ones, can be handled
directly within the producer code and do not need to be surfaced to the 
applications.
I suppose this means there is no need to make any change at all for these 
exceptions.
By changing these exceptions too, I suppose it makes it simple in the producer 
to
figure out which errors can be retried internally.

Could you be explicit about which exceptions are going to be changed and which
class is the new superclass? For one thing, having a table would make it obvious
to the code reviewers whether the intended change was being made.

4. A few nits about the Java code snippet for the new exception types.

a. ApiException has 4 constructors: (), (String), (Throwable) and (String, 
Throwable).
I think you’ll need 4 constructors for each of your new exceptions.

b. In some cases, the class names and the constructor names are inconsistent.

5. I believe that a producer application which received 
TopicAuthorizationException
could continue to use the same Producer attempting to use the topic while the
administrator fixed the ACLs to grant access, and then the operations would 
start
working as soon as the access was in place. Is this true for the authorization
exceptions in this KIP? Does it vary by resource type, such as transactional ID?

Thanks,
Andrew

> On 6 Jun 2024, at 12:57, Kaushik Raina <kra...@confluent.io.INVALID> wrote:
>
> Hi everyone, I would like to start a discussion thread for KIP-1050:
> Consistent error handling for Transactions
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1050%3A+Consistent+error+handling+for+Transactions
>
>
> Thanks
> Kaushik Raina

Reply via email to