Wouldn't it make sense to move away from these rich binary broker descriptors ({ host, port, proto }) (which require protocol churning on change), and simply use URIs instead?
E.g.: kafka://<host>[:port]/ <-- cleantext proto on standard port 9092 kafkas://<host>[:port] <-- SSL enveloped proto on standard port 9093 kafkas://<user:pass>@<host>[:port]/ <-- SSL enveloped, with user authentication .. kafkafuturetech://.../#opts <-- six months from now. Trailing #fragment_ids could be used to hint the client on protocol versions, supported authentications, etc. This also makes error reporting more meaningful on the client, e.g compare: "Unsupported protocol 19 on broker foo:1234" to "Unsupported protocol kafkafturetech on broker foo:1234" A positive side effect would be a more generalized topic addressing in clients: kafkacat kafka://<bootstrap>/mytopic/3?offset=end <-- tail partition 3 of mytopic Just an idea, Magnus 2015-01-23 5:43 GMT+01:00 Jun Rao <j...@confluent.io>: > Reviewed the latest patch in KAFKA-1809 :). > > Thanks, > > Jun > > On Thu, Jan 22, 2015 at 12:38 PM, Gwen Shapira <gshap...@cloudera.com> > wrote: > > > Thanks for validating our ideas. Updated the KIP with the workflow. > > > > Now if you can nudge Jun to review the latest patch... ;) > > > > > > On Thu, Jan 22, 2015 at 11:44 AM, Jay Kreps <j...@confluent.io> wrote: > > > Oh yeah I think that is better, I hadn't thought of that approach! Any > > way > > > you could describe the usage in the KIP, just for completeness? > > > > > > -Jay > > > > > > On Thu, Jan 22, 2015 at 10:23 AM, Gwen Shapira <gshap...@cloudera.com> > > > wrote: > > > > > >> I think what you described was the original design, so no wonder you > > >> are confused :) > > >> > > >> Following suggestions from Jun, I changed it a bit. The current model > > is: > > >> > > >> - Clients (producers and consumers) need to know about the broker > > >> ports in advance. They don't need to know about all brokers, but they > > >> need to know at least one host:port pair that speaks the protocol they > > >> want to use. The change is that all host:port pairs in broker.list > > >> must be of the same protocol and match the security.protocol > > >> configuration parameter. > > >> > > >> - Client uses security.protocol configuration parameter to open a > > >> connection to one of the brokers and sends the good old > > >> MetadataRequest. The broker knows which port it got the connection on, > > >> therefore it knows which security protocol is expected (it needs to > > >> use the same protocol to accept the connection and respond), and > > >> therefore it can send a response that contains only the host:port > > >> pairs that are relevant to that protocol. > > >> > > >> - From the client side the MetadataResponse did not change - it > > >> contains a list of brokerId,host,port that the client can connect to. > > >> The fact that all those broker endpoints were chosen out of a larger > > >> collection to match the right protocol is irrelevant for the client. > > >> > > >> I really like the new design since it preserves a lot of the same > > >> configurations and APIs. > > >> > > >> Thoughts? > > >> > > >> Gwen > > >> > > >> On Thu, Jan 22, 2015 at 9:19 AM, Jay Kreps <jay.kr...@gmail.com> > wrote: > > >> > I think I am still confused. In addition to the > UpdateMetadataRequest > > >> don't > > >> > we have to change the MetadataResponse so that it's possible for > > clients > > >> to > > >> > discover the new ports? Or is that a second phase? I was imagining > it > > >> > worked by basically allowing the brokers to advertise multiple > ports, > > one > > >> > per security type, and then in the client you configure a protocol > > which > > >> > will implicitly choose the port from the options returned in > metadata > > to > > >> > you... > > >> > > > >> > Likewise in the ConsumerMetadataResponse we are currently giving > back > > >> full > > >> > broker information. I think we would have two options here: either > > change > > >> > the broker information included in that response to match the > > >> > metadataresponse or else remove the broker information entirely and > > just > > >> > return the node id (since in order to use that request you would > > already > > >> > have to have the cluster metadata). The second option may be cleaner > > >> since > > >> > it means we won't have to continue evolving those two in lockstep... > > >> > > > >> > -Jay > > >> > > > >> > On Wed, Jan 21, 2015 at 6:19 PM, Gwen Shapira < > gshap...@cloudera.com> > > >> wrote: > > >> > > > >> >> Good point :) > > >> >> > > >> >> I added the specifics of the new UpdateMetadataRequest, which is > the > > >> >> only protocol bump in this change. > > >> >> > > >> >> Highlighted the broker and producer/consumer configuration changes, > > >> >> added some example values and added the new zookeeper json. > > >> >> > > >> >> Hope this makes things clearer. > > >> >> > > >> >> On Wed, Jan 21, 2015 at 2:19 PM, Jay Kreps <jay.kr...@gmail.com> > > wrote: > > >> >> > Hey Gwen, > > >> >> > > > >> >> > Could we get the actual changes in that KIP? I.e. changes to > > metadata > > >> >> > request, changes to UpdateMetadataRequest, new configs and what > > will > > >> >> their > > >> >> > valid values be, etc. This kind of says that those things will > > change > > >> but > > >> >> > doesn't say what they will change to... > > >> >> > > > >> >> > -Jay > > >> >> > > > >> >> > On Mon, Jan 19, 2015 at 9:45 PM, Gwen Shapira < > > gshap...@cloudera.com> > > >> >> wrote: > > >> >> > > > >> >> >> I created a KIP for the multi-port broker change. > > >> >> >> > > >> >> >> > > >> >> > > >> > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-2+-+Refactor+brokers+to+allow+listening+on+multiple+ports+and+IPs > > >> >> >> > > >> >> >> I'm not re-opening the discussion, since it was agreed on over a > > >> month > > >> >> >> ago and implementation is close to complete (I hope!). Lets > > consider > > >> >> >> this voted and accepted? > > >> >> >> > > >> >> >> Gwen > > >> >> >> > > >> >> >> On Sun, Jan 18, 2015 at 10:31 AM, Jay Kreps < > jay.kr...@gmail.com> > > >> >> wrote: > > >> >> >> > Great! Sounds like everyone is on the same page > > >> >> >> > > > >> >> >> > - I created a template page to make things easier. If you > do > > >> >> >> Tools->Copy > > >> >> >> > on this page you can just fill in the italic portions with > > your > > >> >> >> details. > > >> >> >> > - I retrofitted KIP-1 to match this formatting > > >> >> >> > - I added the metadata section people asked for (a link to > > the > > >> >> >> > discussion, the JIRA, and the current status). Let's make > > sure > > >> we > > >> >> >> remember > > >> >> >> > to update the current status as things are figured out. > > >> >> >> > - Let's keep the discussion on the mailing list rather than > > on > > >> the > > >> >> >> wiki > > >> >> >> > pages. It makes sense to do one or the other so all the > > comments > > >> >> are > > >> >> >> in one > > >> >> >> > place and I think prior experience is that the wiki > comments > > are > > >> >> the > > >> >> >> worse > > >> >> >> > way. > > >> >> >> > > > >> >> >> > I think it would be great do KIPs for some of the in-flight > > items > > >> >> folks > > >> >> >> > mentioned. > > >> >> >> > > > >> >> >> > -Jay > > >> >> >> > > > >> >> >> > On Sat, Jan 17, 2015 at 8:23 AM, Gwen Shapira < > > >> gshap...@cloudera.com> > > >> >> >> wrote: > > >> >> >> > > > >> >> >> >> +1 > > >> >> >> >> > > >> >> >> >> Will be happy to provide a KIP for the multiple-listeners > > patch. > > >> >> >> >> > > >> >> >> >> Gwen > > >> >> >> >> > > >> >> >> >> On Sat, Jan 17, 2015 at 8:10 AM, Joe Stein < > > joe.st...@stealth.ly> > > >> >> >> wrote: > > >> >> >> >> > +1 to everything we have been saying and where this (has > > settled > > >> >> >> to)/(is > > >> >> >> >> > settling to). > > >> >> >> >> > > > >> >> >> >> > I am sure other folks have some more feedback and think we > > >> should > > >> >> try > > >> >> >> to > > >> >> >> >> > keep this discussion going if need be. I am also a firm > > >> believer of > > >> >> >> form > > >> >> >> >> > following function so kicking the tires some to flesh out > the > > >> >> details > > >> >> >> of > > >> >> >> >> > this and have some organic growth with the process will be > > >> healthy > > >> >> and > > >> >> >> >> > beneficial to the community. > > >> >> >> >> > > > >> >> >> >> > For my part, what I will do is open a few KIP based on some > > of > > >> the > > >> >> >> work I > > >> >> >> >> > have been involved with for 0.8.3. Off the top of my head > > this > > >> >> would > > >> >> >> >> > include 1) changes to re-assignment of partitions 2) kafka > > cli > > >> 3) > > >> >> >> global > > >> >> >> >> > configs 4) security white list black list by ip 5) SSL 6) > We > > >> >> probably > > >> >> >> >> will > > >> >> >> >> > have lots of Security related KIPs and should treat them > all > > >> >> >> individually > > >> >> >> >> > when the time is appropriate 7) Kafka on Mesos. > > >> >> >> >> > > > >> >> >> >> > If someone else wants to jump in to start getting some of > the > > >> >> security > > >> >> >> >> KIP > > >> >> >> >> > that we are going to have in 0.8.3 I think that would be > > great > > >> >> (e.g. > > >> >> >> >> > Multiple Listeners for Kafka Brokers). There are also a few > > >> other > > >> >> >> >> tickets I > > >> >> >> >> > can think of that are important to have in the code in > 0.8.3 > > >> that > > >> >> >> should > > >> >> >> >> > have KIP also that I haven't really been involved in. I > will > > >> take a > > >> >> >> few > > >> >> >> >> > minutes and go through JIRA (one I can think of like auto > > >> assign id > > >> >> >> that > > >> >> >> >> is > > >> >> >> >> > already committed I think) and ask for a KIP if appropriate > > or > > >> if I > > >> >> >> feel > > >> >> >> >> > that I can write it up (both from a time and understanding > > >> >> >> perspective) > > >> >> >> >> do > > >> >> >> >> > so. > > >> >> >> >> > > > >> >> >> >> > long story short, I encourage folks to start moving ahead > > with > > >> the > > >> >> KIP > > >> >> >> >> for > > >> >> >> >> > 0.8.3 as how we operate. any objections? > > >> >> >> >> > > > >> >> >> >> > On Fri, Jan 16, 2015 at 2:40 PM, Guozhang Wang < > > >> wangg...@gmail.com > > >> >> > > > >> >> >> >> wrote: > > >> >> >> >> > > > >> >> >> >> >> +1 on the idea, and we could mutually link the KIP wiki > page > > >> with > > >> >> the > > >> >> >> >> the > > >> >> >> >> >> created JIRA ticket (i.e. include the JIRA number on the > > page > > >> and > > >> >> the > > >> >> >> >> KIP > > >> >> >> >> >> url on the ticket description). > > >> >> >> >> >> > > >> >> >> >> >> Regarding the KIP process, probably we do not need two > phase > > >> >> >> >> communication > > >> >> >> >> >> of a [DISCUSS] followed by [VOTE], as Jay said the voting > > >> should > > >> >> be > > >> >> >> >> clear > > >> >> >> >> >> while people discuss about that. > > >> >> >> >> >> > > >> >> >> >> >> About who should trigger the process, I think the only > > involved > > >> >> >> people > > >> >> >> >> >> would be 1) when the patch is submitted / or even the > > ticket is > > >> >> >> created, > > >> >> >> >> >> the assignee could choose to start the KIP process if she > > >> thought > > >> >> it > > >> >> >> is > > >> >> >> >> >> necessary; 2) the reviewer of the patch can also suggest > > >> starting > > >> >> KIP > > >> >> >> >> >> discussions. > > >> >> >> >> >> > > >> >> >> >> >> On Fri, Jan 16, 2015 at 10:49 AM, Gwen Shapira < > > >> >> >> gshap...@cloudera.com> > > >> >> >> >> >> wrote: > > >> >> >> >> >> > > >> >> >> >> >> > +1 to Ewen's suggestions: Deprecation, status and > version. > > >> >> >> >> >> > > > >> >> >> >> >> > Perhaps add the JIRA where the KIP was implemented to > the > > >> >> metadata. > > >> >> >> >> >> > This will help tie things together. > > >> >> >> >> >> > > > >> >> >> >> >> > On Fri, Jan 16, 2015 at 9:35 AM, Ewen Cheslack-Postava > > >> >> >> >> >> > <e...@confluent.io> wrote: > > >> >> >> >> >> > > I think adding a section about deprecation would be > > >> helpful. A > > >> >> >> good > > >> >> >> >> >> > > fraction of the time I would expect the goal of a KIP > > is to > > >> >> fix > > >> >> >> or > > >> >> >> >> >> > replace > > >> >> >> >> >> > > older functionality that needs continued support for > > >> >> >> compatibility, > > >> >> >> >> but > > >> >> >> >> >> > > should eventually be phased out. This helps Kafka devs > > >> >> understand > > >> >> >> >> how > > >> >> >> >> >> > long > > >> >> >> >> >> > > they'll end up supporting multiple versions of > features > > and > > >> >> helps > > >> >> >> >> users > > >> >> >> >> >> > > understand when they're going to have to make updates > to > > >> their > > >> >> >> >> >> > applications. > > >> >> >> >> >> > > > > >> >> >> >> >> > > Less important but useful -- having a bit of standard > > >> metadata > > >> >> >> like > > >> >> >> >> >> PEPs > > >> >> >> >> >> > > do. Two I think are important are status (if someone > > lands > > >> on > > >> >> the > > >> >> >> >> KIP > > >> >> >> >> >> > page, > > >> >> >> >> >> > > can they tell whether this KIP was ever completed?) > > and/or > > >> the > > >> >> >> >> version > > >> >> >> >> >> > the > > >> >> >> >> >> > > KIP was first released in. > > >> >> >> >> >> > > > > >> >> >> >> >> > > > > >> >> >> >> >> > > > > >> >> >> >> >> > > On Fri, Jan 16, 2015 at 9:20 AM, Joel Koshy < > > >> >> jjkosh...@gmail.com > > >> >> >> > > > >> >> >> >> >> wrote: > > >> >> >> >> >> > > > > >> >> >> >> >> > >> I'm definitely +1 on the KIP concept. As Joe > > mentioned, we > > >> >> are > > >> >> >> >> already > > >> >> >> >> >> > >> doing this in one form or the other. However, IMO it > is > > >> >> fairly > > >> >> >> ad > > >> >> >> >> hoc > > >> >> >> >> >> > >> - i.e., a combination of DISCUSS threads, jira > > comments, > > >> RB > > >> >> and > > >> >> >> >> code > > >> >> >> >> >> > >> comments, wikis and html documentation. In the past I > > have > > >> >> had > > >> >> >> to > > >> >> >> >> dig > > >> >> >> >> >> > >> into a bunch of these to try and figure out why > > something > > >> was > > >> >> >> >> >> > >> implemented a certain way. I think KIPs can help a > lot > > >> here > > >> >> >> first > > >> >> >> >> by > > >> >> >> >> >> > >> providing guidelines on what to think about > > >> (compatibility, > > >> >> new > > >> >> >> >> APIs, > > >> >> >> >> >> > >> etc.) when working through a major feature; and > second > > by > > >> >> >> becoming > > >> >> >> >> a > > >> >> >> >> >> > >> crisp source of truth documentation for new releases. > > >> E.g., > > >> >> for > > >> >> >> >> >> > >> feature X: see relevant KIPs: a, b, c, etc. > > >> >> >> >> >> > >> > > >> >> >> >> >> > >> On Thu, Jan 15, 2015 at 08:11:20PM -0800, Jay Kreps > > wrote: > > >> >> >> >> >> > >> > Hey Joe, > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > Yeah I guess the question is what is the definition > > of > > >> >> major? > > >> >> >> I > > >> >> >> >> >> agree > > >> >> >> >> >> > we > > >> >> >> >> >> > >> > definitely don't want to generate a bunch of > > paperwork. > > >> We > > >> >> >> have > > >> >> >> >> >> enough > > >> >> >> >> >> > >> > problems just getting all the contributions > reviewed > > and > > >> >> >> checked > > >> >> >> >> in > > >> >> >> >> >> > in a > > >> >> >> >> >> > >> > timely fashion... > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > So obviously bug fixes would not apply here. > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > I think it is also pretty clear that big features > > should > > >> >> get > > >> >> >> >> >> reviewed > > >> >> >> >> >> > and > > >> >> >> >> >> > >> > discussed. To pick on myself, for example, the log > > >> >> compaction > > >> >> >> >> work > > >> >> >> >> >> was > > >> >> >> >> >> > >> done > > >> >> >> >> >> > >> > without enough public discussion about how it > worked > > and > > >> >> why > > >> >> >> >> >> (imho). I > > >> >> >> >> >> > >> > hope/claim that enough rigour in thinking about > > >> use-cases > > >> >> and > > >> >> >> >> >> > operations > > >> >> >> >> >> > >> > and so on was done that it turned out well, but the > > >> >> discussion > > >> >> >> >> was > > >> >> >> >> >> > just > > >> >> >> >> >> > >> > between a few people with no real public output. > This > > >> kind > > >> >> of > > >> >> >> >> >> feature > > >> >> >> >> >> > is > > >> >> >> >> >> > >> > clearly a big change and something we should > discuss. > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > If we limit ourselves to just the public contracts > > the > > >> KIP > > >> >> >> >> >> introduces > > >> >> >> >> >> > the > > >> >> >> >> >> > >> > discussion would just be on the new configs and > > >> monitoring > > >> >> >> >> without > > >> >> >> >> >> > >> really a > > >> >> >> >> >> > >> > discussion of the design and how it works which is > > >> >> obviously > > >> >> >> >> closely > > >> >> >> >> >> > >> > related. > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > I don't think this should be more work because in > > >> practice > > >> >> we > > >> >> >> are > > >> >> >> >> >> > making > > >> >> >> >> >> > >> > wiki pages for any big thing anyway. So this would > > just > > >> be > > >> >> a > > >> >> >> >> >> > consistent > > >> >> >> >> >> > >> way > > >> >> >> >> >> > >> > of numbering and structuring these pages. This > would > > >> also > > >> >> >> give a > > >> >> >> >> >> clear > > >> >> >> >> >> > >> call > > >> >> >> >> >> > >> > to action: "hey kafka people, come read my wiki and > > >> think > > >> >> this > > >> >> >> >> >> > through". > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > I actually thinking the voting aspect is less > > >> important. I > > >> >> >> think > > >> >> >> >> it > > >> >> >> >> >> is > > >> >> >> >> >> > >> > generally clear when there is agreement on > something > > and > > >> >> not. > > >> >> >> So > > >> >> >> >> >> from > > >> >> >> >> >> > my > > >> >> >> >> >> > >> > point of view we could actually just eliminate that > > >> part if > > >> >> >> that > > >> >> >> >> is > > >> >> >> >> >> > too > > >> >> >> >> >> > >> > formal, it just seemed like a good way to formally > > adopt > > >> >> >> >> something. > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > To address some of your comments from the wiki: > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > 1. This doesn't inhibit someone coming along and > > putting > > >> >> up a > > >> >> >> >> patch. > > >> >> >> >> >> > It > > >> >> >> >> >> > >> is > > >> >> >> >> >> > >> > just that when they do if it is a big thing > > introducing > > >> new > > >> >> >> >> >> > functionality > > >> >> >> >> >> > >> > we would ask for a little discussion on the basic > > >> >> >> >> feature/contracts > > >> >> >> >> >> > prior > > >> >> >> >> >> > >> > to code review. > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > 2. We definitely definitely don't want people > > >> generating a > > >> >> >> lot of > > >> >> >> >> >> > these > > >> >> >> >> >> > >> > things every time they have an idea that they > aren't > > >> going > > >> >> to > > >> >> >> >> >> > implement. > > >> >> >> >> >> > >> So > > >> >> >> >> >> > >> > this is only applicable to things you absolutely > will > > >> >> check in > > >> >> >> >> code > > >> >> >> >> >> > for. > > >> >> >> >> >> > >> We > > >> >> >> >> >> > >> > also don't want to be making proposals before > things > > are > > >> >> >> thought > > >> >> >> >> >> > through, > > >> >> >> >> >> > >> > which often requires writing the code. So I think > the > > >> right > > >> >> >> time > > >> >> >> >> >> for a > > >> >> >> >> >> > >> KIP > > >> >> >> >> >> > >> > is when you are far enough along that you know the > > >> issues > > >> >> and > > >> >> >> >> >> > tradeoffs > > >> >> >> >> >> > >> but > > >> >> >> >> >> > >> > not so far along that you are going to be totally > > >> opposed > > >> >> to > > >> >> >> any > > >> >> >> >> >> > change. > > >> >> >> >> >> > >> > Sometimes that is prior to writing any code and > > >> sometimes > > >> >> not > > >> >> >> >> until > > >> >> >> >> >> > you > > >> >> >> >> >> > >> are > > >> >> >> >> >> > >> > practically done. > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > The key problem I see this fixing is that there is > > >> enough > > >> >> new > > >> >> >> >> >> > development > > >> >> >> >> >> > >> > happening that it is pretty hard for everyone to > > review > > >> >> every > > >> >> >> >> line > > >> >> >> >> >> of > > >> >> >> >> >> > >> every > > >> >> >> >> >> > >> > iteration of every patch. But all of us should be > > fully > > >> >> aware > > >> >> >> of > > >> >> >> >> new > > >> >> >> >> >> > >> > features, the ramifications, the new public > > interfaces, > > >> >> etc. > > >> >> >> If > > >> >> >> >> we > > >> >> >> >> >> > aren't > > >> >> >> >> >> > >> > aware of that we can't really build a holistic > system > > >> that > > >> >> is > > >> >> >> >> >> > beautiful > > >> >> >> >> >> > >> and > > >> >> >> >> >> > >> > consistent across. So the idea is that if you fully > > >> review > > >> >> the > > >> >> >> >> KIPs > > >> >> >> >> >> > you > > >> >> >> >> >> > >> can > > >> >> >> >> >> > >> > be sure that even if you don't know every new line > of > > >> code, > > >> >> >> you > > >> >> >> >> know > > >> >> >> >> >> > the > > >> >> >> >> >> > >> > major changes coming in. > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > -Jay > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > On Thu, Jan 15, 2015 at 12:18 PM, Joe Stein < > > >> >> >> >> joe.st...@stealth.ly> > > >> >> >> >> >> > >> wrote: > > >> >> >> >> >> > >> > > > >> >> >> >> >> > >> > > Thanks Jay for kicking this off! I think the > > >> confluence > > >> >> page > > >> >> >> >> you > > >> >> >> >> >> > wrote > > >> >> >> >> >> > >> up > > >> >> >> >> >> > >> > > is a great start. > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > The KIP makes sense to me (at a minimum) if there > > is > > >> >> going > > >> >> >> to > > >> >> >> >> be > > >> >> >> >> >> any > > >> >> >> >> >> > >> > > "breaking change". This way Kafka can continue to > > grow > > >> >> and > > >> >> >> >> blossom > > >> >> >> >> >> > and > > >> >> >> >> >> > >> we > > >> >> >> >> >> > >> > > have a process in place if we are going to > release > > a > > >> >> thorn > > >> >> >> ... > > >> >> >> >> and > > >> >> >> >> >> > >> when we > > >> >> >> >> >> > >> > > do it is *CLEAR* about what and why that is. We > can > > >> >> easily > > >> >> >> >> >> document > > >> >> >> >> >> > >> which > > >> >> >> >> >> > >> > > KIPs where involved with this release (which I > > think > > >> >> should > > >> >> >> get > > >> >> >> >> >> > >> committed > > >> >> >> >> >> > >> > > afterwards somewhere so no chance of edit after > > >> release). > > >> >> >> This > > >> >> >> >> >> > >> approach I > > >> >> >> >> >> > >> > > had been thinking about also allows changes to > > occur > > >> as > > >> >> >> they do > > >> >> >> >> >> now > > >> >> >> >> >> > as > > >> >> >> >> >> > >> long > > >> >> >> >> >> > >> > > as they are backwards compatible. Hopefully we > > never > > >> >> need a > > >> >> >> >> KIP > > >> >> >> >> >> but > > >> >> >> >> >> > >> when > > >> >> >> >> >> > >> > > we do the PMC can vote on it and folks can read > the > > >> >> release > > >> >> >> >> notes > > >> >> >> >> >> > with > > >> >> >> >> >> > >> > > *CLEAR* understanding what is going to break > their > > >> >> existing > > >> >> >> >> >> > setup... at > > >> >> >> >> >> > >> > > least that is how I have been thinking about it. > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > Let me know what you think about this base > minimum > > >> >> >> approach... > > >> >> >> >> I > > >> >> >> >> >> > hadn't > > >> >> >> >> >> > >> > > really thought of the KIP for *ANY* "major > change" > > >> and I > > >> >> >> have > > >> >> >> >> to > > >> >> >> >> >> > think > > >> >> >> >> >> > >> more > > >> >> >> >> >> > >> > > about that. I have some other comments for minor > > >> items in > > >> >> >> the > > >> >> >> >> >> > >> confluence > > >> >> >> >> >> > >> > > page I will make once I think more about how I > feel > > >> >> having a > > >> >> >> >> KIP > > >> >> >> >> >> for > > >> >> >> >> >> > >> more > > >> >> >> >> >> > >> > > than what I was thinking about already. > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > I do think we should have "major changes" go > > through > > >> >> >> >> confluence, > > >> >> >> >> >> > >> mailing > > >> >> >> >> >> > >> > > list discuss and JIRA but kind of feel we have > been > > >> doing > > >> >> >> that > > >> >> >> >> >> > already > > >> >> >> >> >> > >> ... > > >> >> >> >> >> > >> > > if there are cases where that isn't the case we > > should > > >> >> >> >> highlight > > >> >> >> >> >> and > > >> >> >> >> >> > >> learn > > >> >> >> >> >> > >> > > from them and formalize that more if need be. > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > /******************************************* > > >> >> >> >> >> > >> > > Joe Stein > > >> >> >> >> >> > >> > > Founder, Principal Consultant > > >> >> >> >> >> > >> > > Big Data Open Source Security LLC > > >> >> >> >> >> > >> > > http://www.stealth.ly > > >> >> >> >> >> > >> > > Twitter: @allthingshadoop < > > >> >> >> >> >> http://www.twitter.com/allthingshadoop> > > >> >> >> >> >> > >> > > ********************************************/ > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > On Thu, Jan 15, 2015 at 1:42 PM, Jay Kreps < > > >> >> >> >> jay.kr...@gmail.com> > > >> >> >> >> >> > >> wrote: > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > > The idea of KIPs came up in a previous > discussion > > >> but > > >> >> >> there > > >> >> >> >> was > > >> >> >> >> >> no > > >> >> >> >> >> > >> real > > >> >> >> >> >> > >> > > > crisp definition of what they were. Here is an > > >> attempt > > >> >> at > > >> >> >> >> >> > defining a > > >> >> >> >> >> > >> > > > process: > > >> >> >> >> >> > >> > > > > > >> >> >> >> >> > >> > > > > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > >> >> >> >> >> > > > >> >> >> >> >> > > >> >> >> >> > > >> >> >> > > >> >> > > >> > > > https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals > > >> >> >> >> >> > >> > > > > > >> >> >> >> >> > >> > > > The trick here is to have something > light-weight > > >> enough > > >> >> >> that > > >> >> >> >> it > > >> >> >> >> >> > >> isn't a > > >> >> >> >> >> > >> > > > hassle for small changes, but enough so that > > changes > > >> >> get > > >> >> >> the > > >> >> >> >> >> > >> eyeballs of > > >> >> >> >> >> > >> > > > the committers and heavy users. > > >> >> >> >> >> > >> > > > > > >> >> >> >> >> > >> > > > Thoughts? > > >> >> >> >> >> > >> > > > > > >> >> >> >> >> > >> > > > -Jay > > >> >> >> >> >> > >> > > > > > >> >> >> >> >> > >> > > > > >> >> >> >> >> > >> > > >> >> >> >> >> > >> > > >> >> >> >> >> > > > > >> >> >> >> >> > > > > >> >> >> >> >> > > -- > > >> >> >> >> >> > > Thanks, > > >> >> >> >> >> > > Ewen > > >> >> >> >> >> > > > >> >> >> >> >> > > >> >> >> >> >> > > >> >> >> >> >> > > >> >> >> >> >> -- > > >> >> >> >> >> -- Guozhang > > >> >> >> >> >> > > >> >> >> >> > > >> >> >> > > >> >> > > >> > > >