>From the user code I see that uses the new consumer API so far, here are my
two cents:

1. For subscribe() and assign(), because we are doing an replacement,
taking either a List() or Collection() makes sense.
2. For seek(), pause(), resume(), it depends on how easily user can use
them.
    If we take current interface, and user have a list of partitions to
pause(), what they can do is something like:
    pause(patitionList.toArray());
    If we change that to take a collection and user have only one partition
to pause. They have to do:
    pause(new List<>(partition));
    Personally I think the current interface handles both single partition
and a list of partitions better. It is not ideal that we have to adapt to
the interface. I just feel it is weirder to create a new list.

Thanks,

Jiangjie (Becket) Qin

On Wed, Jan 27, 2016 at 2:24 PM, Gwen Shapira <g...@confluent.io> wrote:

> I have a minor preference toward modifying the API.
> Because it is source-compatible and protocol-compatible, the only case that
> will break is if you use client code from one version but run with a JAR
> from a different version, which sounds like a pretty weird setup in
> general.
>
> Its not a strong preference though, I'll vote for either.
>
> On Wed, Jan 27, 2016 at 1:35 PM, Pierre-Yves Ritschard <p...@spootnik.org>
> wrote:
>
> >
> > Hi Jason,
> >
> > Thanks for weighing in on this. Here's my take:
> >
> > - I initially opted for overloading, but this met resistance (most
> >   vocally from Jay Kreps). I don't have strong feelings either way (I
> >   tend to prefer the current proposal without overloading but would
> >   understand the need to add it back).
> > - The feedback I got around me (from an admittedly small population
> >   sample) is that most people are thinking of migrating to 0.9.0.0. I
> >   would wager that a very large majority of users are running production
> >   apps on 0.8 clients and would thus not be impacted. The very recent
> >   availability of the client libs would also indicate that those having
> >   already switched to 0.9.0.0 client libs have a capacity to iterate
> fast.
> >
> > Jason Gustafson writes:
> >
> > > Hi Pierre,
> > >
> > > Thanks for your persistence on this issue. I've gone back and forth on
> > this
> > > a few times. The current API can definitely be annoying in some cases,
> > but
> > > breaking compatibility still sucks. We do have the @Unstable annotation
> > on
> > > the API, but it's unclear what exactly it means and I'm guessing most
> > users
> > > haven't even noticed it. In the end, I feel we should try harder to
> keep
> > > compatibility even if it means keeping some of the annoying usage. As
> an
> > > alternative, maybe we could do the following:
> > >
> > > 1. For subscribe() and assign(), change the parameter type to
> collection
> > as
> > > planned in the KIP. This is at least source-compatible, so as long as
> > users
> > > compile against the updated release, there shouldn't be any problems.
> > >
> > > 2. Instead of changing the signatures of the current pause/resume/seek
> > > APIs, maybe we can overload them. This keeps compatibility and supports
> > the
> > > more convenient collection usage, but the cost is some API bloat.
> > >
> > > In my opinion, the slightly increased surface area from overloading is
> > > worth the cost of keeping compatibility. Overloading is very common in
> > Java
> > > APIs, so there's no potential for confusion, and it has basically no
> > > maintenance overhead. However, I know others already expressed
> opposition
> > > to this, so if it's not agreeable, then I'm probably more inclined to
> > keep
> > > the current API. That said, it's not a strong preference. If the
> > consensus
> > > is to allow the breakage now, it doesn't seem like too big of a deal
> for
> > > users to update their code. It might be early enough that most users
> > > haven't finished (or perhaps haven't even started) migrating their code
> > to
> > > use the new consumer.
> > >
> > > What do you think?
> > >
> > > Thanks,
> > > Jason
> > >
> > >
> > > On Tue, Jan 26, 2016 at 11:52 AM, Pierre-Yves Ritschard <
> > p...@spootnik.org>
> > > wrote:
> > >
> > >>
> > >> I updated the KIP accordingly.
> > >>
> > >> Cheers,
> > >>   - pyr
> > >>
> >
> >
>

Reply via email to