Thank you Clement and Colin for shading light on the process for me. I will
probably start working on a new kip for pluggable SslEngine.

Side note: The pull request is from my fork to my fork to make it easier to
see what changes I am making. I have no intention to getting it reviewed as
a pull request.

Okay, let me start with a new KIP and we will go from there. I'll keep this
KIP-486 since I feel ultimately we need that kip.

Thanks
Maulin

On Fri, Sep 6, 2019 at 2:52 PM Colin McCabe <cmcc...@apache.org> wrote:

> Sorry, I meant to write "removing an API typically requires a new major
> release of Kafka".  Deprecating an API can be done in a minor release.
>
> regards,
> Colin
>
>
> On Fri, Sep 6, 2019, at 14:49, Colin McCabe wrote:
> > Hi Maulin,
> >
> > Clement brought up a good point, which is that we should have agreement
> > on the overall design before we start looking at PRs.  In Kafka, that
> > means starting a discussion on a KIP, and then getting that KIP voted
> > in.
> >
> > There is more information about the KIP process here:
> >
> https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals
> > Feel free to ask more detailed questions about the process on the
> > mailing list as well :)
> >
> > It sounds like Clement is proposing that you create a new KIP rather
> > than reusing KIP-383.  So you should probably either repurpose KIP-486
> > for this, or choose a new number.  Both options seem reasonable here.
> > As far as I can see, once we implement a pluggable SslEngineBuilder,
> > KIP-383 would no longer be needed, and so we would put that one into
> > "rejected KIPs."
> >
> > In general, coming up with good APIs can be harder than it might seem
> > at first.  Once we add an API, we have to assume that we're going to
> > support it forever.  Deprecating an API can take a very long time, and
> > typically requires a new major release of Kafka.  Therefore, sometimes
> > it's worth making users go through a little bit of copying and pasting
> > in order to avoid creating an API that would constrain the project in
> > the future.  Hopefully, we can come up with something good here that
> > will be useful to everyone.
> >
> > best,
> > Colin
> >
> >
> > On Fri, Sep 6, 2019, at 07:48, Pellerin, Clement wrote:
> > > This is the way I see it, which is in no way authoritative.
> > >
> > > First you have to find a complete solution, then you need to document
> > > it in a KIP and that KIP needs to pass a vote. Any votes before the
> KIP
> > > vote starts is meaningless.
> > >
> > > As for the ownership and authorship of the KIPs, I don't plan to work
> > > on this, so KIP-383 is better left the way it is. I would prefer if
> you
> > > would update your KIP or maybe create a new one. We can mark KIP-383
> as
> > > obsolete after your KIP passes its vote.
> > >
> > > -----Original Message-----
> > > From: Maulin Vasavada [mailto:maulin.vasav...@gmail.com]
> > > Sent: Friday, September 6, 2019 2:36 AM
> > > To: dev@kafka.apache.org
> > > Subject: Re: [DISCUSS] KIP-486 Support for pluggable KeyStore and
> TrustStore
> > >
> > > Hi all
> > >
> > > Any input on my last question about the process?
> > >
> > > Also, I have updated the code based on the feedback so far at:
> > > https://github.com/maulin-vasavada/kafka/pull/2/files. Still have to
> figure
> > > out how to plug keys/certs loading while using
> DefaultSslEngineFactory's
> > > implementation (still need to make it final).
> > >
> > > Thanks
> > > Maulin
> > >
> > >
> > > On Thu, Sep 5, 2019 at 4:34 PM Maulin Vasavada <
> maulin.vasav...@gmail.com>
> > > wrote:
> > >
> > > > Hi all
> > > >
> > > > It seems we are in some sort of agreement so far apart from code
> > > > review/comments. However, I have a fundamental question - going
> forward how
> > > > this work from the process standpoint? What do we do with this
> KIP-486 vs
> > > > KIP-383? I feel that both needs to come together since in order to
> make
> > > > Pluggable key/trust store on top of making SslEngineBuilder
> pluggable we
> > > > will need changes suggested by KIP-486 with some differences to the
> > > > original proposal. It would great if someone can help us clarify the
> next
> > > > steps.
> > > >
> > > > Thanks
> > > > Maulin
> > > >
> > > > On Wed, Sep 4, 2019 at 1:54 PM Maulin Vasavada <
> maulin.vasav...@gmail.com>
> > > > wrote:
> > > >
> > > >> Do you guys think it would be easier if you can provide comments on
> > > >> GitHub and we can continue there and summarize the conclusion here?
> > > >>
> > > >> We should not lose addressing any comments.
> > > >>
> > > >> On Wed, Sep 4, 2019 at 12:34 PM Pellerin, Clement <
> > > >> clement_pelle...@ibi.com> wrote:
> > > >>
> > > >>> The proposed interface does not look like the Builder pattern I am
> used
> > > >>> to.
> > > >>> Should SslEngineBuilder be called SslEngineFactory instead?
> > > >>>
> > > >>> On Mon, Sep 2, 2019, at 03:33, Rajini Sivaram wrote:
> > > >>> > I would expect SslEngineBuilder interface to look something like
> this,
> > > >>> > perhaps with some tweaking:
> > > >>> >
> > > >>> > public interface SslEngineBuilder extends Configurable,
> Closeable {
> > > >>> >
> > > >>> >     Set<String> reconfigurableConfigs();
> > > >>> >
> > > >>> >     boolean shouldBeRebuilt(Map<String, Object> nextConfigs);
> > > >>> >
> > > >>> >     SSLEngine createSslEngine(Mode mode, String peerHost, int
> > > >>> > peerPort, String endpointIdentification);
> > > >>> >
> > > >>> > }
> > > >>>
> > > >>
> > >
> >
>

Reply via email to