Hi Tom,

Maybe I'm missing something, but I don't see the difference between this and 
KIP-692. If the constructors are public APIs, then we must assume that anyone 
who needs more values will need to add more constructors. This KIP spells that 
out, whereas KIP-692 did not, but I think it was clear in both KIPs. Maybe 
there's something I'm overlooking that makes these KIPs different?

Looking back at this issue, I wish we had made these Result types into 
interfaces rather than concrete classes.  There is a fair amount of logic in 
some of them.

I do not really like the idea of maintaining the Result constructors as public 
APIs forever. I think if we want to go that direction we should provide public 
Builder objects.

best,
Colin


On Wed, Sep 29, 2021, at 02:25, Tom Bentley wrote:
> Hi,
>
> Following Ismael's question in the discussion of KIP-774 (Deprecate public
> access to Admin client's *Result constructors), I'd like to propose the
> alternative resolution of making all the constructors public.
>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-777%3A+Improved+testability+for+Admin+client
>
> This is much closer to what was originally proposed in KIP-692, though with
> more reasoning about how we can change the constructors in future while
> maintaining compatibility. It also proposes to add
> KafkaFuture.failedFuture() to avoid people needing to use KafkaFutureImpl
> in tests.
>
> Thanks,
>
> Tom

Reply via email to