Harsha, You seem to be saying that your only two options are to fork or duplicate the existing REST project or add it to Kafka to be able to contribute. I don't think those are the only two options. The other option is to contribute to the existing successful project--which is Apache licensed and getting active contribution today. You always have the power to fork/duplicate later if you don't like the governance/community/direction. Saying that you have to do this proactively doesn't really make sense.
-Jay On Thu, Oct 20, 2016 at 2:27 PM, Harsha Chintalapani <ka...@harsha.io> wrote: > Jay, > REST API is something every user is in need of. If the argument is to > clone and write your API, this will do a disservice to the users as they > now have to choose one vs. others instead of keeping one API that is > supported in Kafka community. > > "Pre-emptively re-creating another > REST layer when it seems like we all quite agree on what needs to be done > and we have an existing code base for HTTP/Kafka access that is heavily > used in production seems quite silly." > Exactly our point. Why can't we develop this in Apache Kafka > community? Instead of us open sourcing another GitHub project and creating > a divide in users and another version of API. Let's build this in Kafka > Community and use the governance model that is proven to provide vendor > free user driven consensus features. The argument that is adding this REST > server to Kafka will affect the agility of the project doesn't mak sense. > > It looks like your argument is either we develop all these small tools or > none at all. We as a community need to look at supporting critical > tools/API. Instead of dividing this project into individual external > communities. We should build this as part of Kafka which best serves the > needs of users. > The Streams and Connect projects that were pushed into Kafka could > have been left in their own Github projects based on your arguments. What > about the REST API is so different that such that it should stay out of the > Kafka project? From my experience, more users are asking for the REST API. > > Thanks, > Harsha > > On Sun, Oct 16, 2016 at 5:19 PM Jungtaek Lim <kabh...@gmail.com> wrote: > > > I guess no one doubts its power on REST server or even UI. I understand > the > > difficulty to add a module to project, but it's maximized when there is > > less support expected hence maintenance issue is likely to rise, and IMHO > > this seems to be not the case. > > > > There're also pain points when project doesn't maintain features and > > delegates to ecosystem. Based on some points (last commit date, pull > > request open and closed, and contributor graph), kafka-manager seems to > > have similar activity to kafka-rest, but it doesn't show any responses > for > > pull request supporting Kafka 0.10.0 even though numerous users leave > > comments wish to support. What Kafka community can do for that project to > > follow up? Nothing but just persuading by leaving comments hoping that > will > > be merged. (or finally come up another implementation) Kafka project > keeps > > agile but in point of whole ecosystem it can be less agile. > > > > Yes decisions and roadmap of the project are driven by PMCs and I think > > it's valid right. But we also imagine ASF projects as driven by community > > aspect, though it's alike to ideal world. KIP makes innovation on > adopting > > new feature transparently, which makes many developers inspiring and > > adopting it to their projects. Hopes that Kafka community continuously > > drives the transparency model among the ASF projects, and beyond. > > > > - Jungtaek Lim (HeartSaVioR) > > > > 2016년 10월 17일 (월) 오전 7:56, Jay Kreps <j...@confluent.io>님이 작성: > > > > Hey Nacho, > > > > Yeah, I think it is definitely a call we have to make case by case. We > have > > some experience with this: originally we attempted to maintain things > like > > non-java clients, a hadoop connector, etc all in the main project. The > > difficulty of that lead us to the current federated approach. In terms of > > what is included now, yes, I agree you could potentially have even less > > included. > > > > -Jay > > > > On Wed, Oct 12, 2016 at 11:37 AM, Nacho Solis > <nso...@linkedin.com.invalid > > > > > wrote: > > > > > What is the criteria for keeping things in and out of Kafka, what code > > goes > > > in or out and what is part of the architecture or not? > > > > > > The discussion of what goes into a project and what stays out is an > > always > > > evolving question. Different projects treat this in different ways. > > > > > > Let me paint 2 extremes. On one side, you have a single monolithic > > project > > > that brings everything in one tent. On the other side you have the > many > > > modules approach. From what I've learned, Kafka falls in the middle. > > > Because of this, the question is bound to come up with respect to the > > > criteria used to bring something into the fold. > > > > > > I'll be the first to point out that the distinction between modules, > > > architecture, software, repositories, governance and community are > > blurry. > > > Not to mention that many things are how they are for historical > reasons. > > > > > > I, personally, can't understand why we would not have REST as part of > the > > > main Kafka project given that a lot of people use it and we include > many > > > things with the current distribution. What many things you may ask? > > Well, > > > if we took the modular approach Kafka is a mixture of components, > here's > > > the first 4 that come to mind: > > > 1. The Kafka protocol > > > 2. The Kafka java libraries > > > 3. The Kafka broker > > > 4. The Kafka stream framework > > > 5. Kafka Connect > > > 6. MirrorMaker > > > > > > All of these could be separate products. You should be able to evolve > > each > > > one independently. Even if they have dependencies on each other, you > > could > > > potentially replace one part. > > > > > > The choice of keeping them all in a single repository, with a single > > > distribution, under the same governance and community, brings a number > of > > > trade offs. It's easy to keep things coherent for example. There is > > less > > > of a need to rely on inherent versioning and compatibility (which we > end > > up > > > providing anyway because of the way people usually deploy kafka). We > all > > > focus our efforts on a single code base. > > > > > > The downside is that it's harder to remove modules that are old or > > unused. > > > Modules that are only used by a small subset of the community will have > > an > > > impact on the rest of the community. It mixes incentives of what > people > > > want to work on and what holds them back. We also need to decide what > > > belongs in the blessed bundle and what doesnt. > > > > > > So, my question boils down to, what criteria is used for bringing stuff > > in. > > > > > > If we have Streams and MirrorMaker and Connect in there, why not have > > REST? > > > Specially if there is more than one person/group willing to work on it? > > > Alternatively, if REST is not included because it's not used by all, > then > > > why not remove Streams, Connect and MirrorMaker since they're > definitely > > > not used by all? I realize I say this even though at LinkedIn we have a > > > REST setup of our own, just speaking from a community perspective. > > > > > > Nacho > > > > > > > > > (I'm relatively new and I haven't read all of the mail archive, so I'm > > sure > > > this has been brought up before, but I decided to chime in anyway) > > > > > > On Wed, Oct 12, 2016 at 8:03 AM, Jay Kreps <j...@confluent.io> wrote: > > > > > > > I think the questions around governance make sense, I think we should > > > > really clarify that to make the process more clear so it can be fully > > > > inclusive. > > > > > > > > The idea that we should not collaborate on what is there now, though, > > > > because in the future we might disagree about direction does not > really > > > > make sense to me. If in the future we disagree, that is the beauty of > > > open > > > > source, you can always fork off a copy of the code and start an > > > independent > > > > project either in Apache or elsewhere. Pre-emptively re-creating > > another > > > > REST layer when it seems like we all quite agree on what needs to be > > done > > > > and we have an existing code base for HTTP/kafka access that is > heavily > > > > used in production seems quite silly. > > > > > > > > Let me give some background on how I at least think about these > things. > > > > I've participated in open source projects out of LinkedIn via github > as > > > > well as via the ASF. I don't think there is a "right" answer to how > to > > do > > > > these but rather some tradeoffs. We thought about this quite a lot in > > the > > > > context of Kafka based on the experience with the Hadoop ecosystem as > > > well > > > > as from other open source communities. > > > > > > > > There is a rich ecosystem around Kafka. Many of the projects are > quite > > > > small--single clients or tools that do a single thing well--and > almost > > > none > > > > of them are top level apache projects. I don't think trying to force > > each > > > > of these to turn into independent Apache projects is necessarily the > > best > > > > thing for the ecosystem. > > > > > > > > My observation of how this can go wrong is really what I think has > > > happened > > > > to the Hadoop ecosystem. There you see quite a zoo of projects which > > all > > > > drift apart and don't quite work together well. Coordinating even > > simple > > > > changes and standardization across these is exceptionally difficult. > > The > > > > result is a bit of a mess for users--the pieces just don't really > come > > > > together very well. This makes sense for independent infrastructure > > > systems > > > > (Kudu vs HDFS) but I'm not at all convinced that doing this for every > > > > little tool or helper library has lead to a desirable state. I think > > the > > > > mode of operating where the Hadoop vendors spawn off a few new Apache > > > > projects for each new product initiative, especially since often that > > > > project is only valued by that vendor (and the other vendor has a > > > different > > > > competing Apache project) doesn't necessarily do a better job at > > > producing > > > > high quality communities or high quality software. > > > > > > > > These tools/connects/clients/proxies and other integration pieces can > > > take > > > > many forms, but my take of what makes one of these things good is > that > > it > > > > remains simple, does its one thing well, and cleaves as closely as > > > possible > > > > to the conventions for Kafka itself--i.e. doesn't invent new ways of > > > > monitoring, configuring, etc. For the tools we've contributed we've > > tried > > > > really hard to make them consistent with Kafka as well as with each > > other > > > > in how testing, configuration, monitoring, etc works. > > > > > > > > I think what Apache does superbly well is create a community for > > > managing a > > > > large infrastructure layer like Kafka in a vendor independent way. > What > > I > > > > think is less successful is attempting to form full and independent > > > apache > > > > communities around very simple single purpose tools, especially if > you > > > hope > > > > for these to come together into a cohesive toolset across multiple > such > > > > tools. Much of what Apache does--create a collective decision making > > > > process for resolving disagreement, help to trademark and protect the > > > marks > > > > of the project, etc just isn't that relevant for simple > single-purpose > > > > tools. > > > > > > > > So my take is there are a couple of options: > > > > > > > > 1. We can try to put all the small tools into the Apache Project. > I > > > > think this is not the right approach as there is simply too many > of > > > > them, > > > > many in different languages, serving different protocols, > > integrating > > > > with > > > > particular systems, and a single community can't effectively > > maintain > > > > them > > > > all. Doing this would significantly slow the progress of the Kafka > > > > project. > > > > As a protocol for messaging, I don't really see a case for > including > > > > REST > > > > but not MQTT or AMQP which are technically much better suited to > > > > messaging > > > > and both are widely used for that. > > > > 2. We can treat ecosystem projects that aren't top level Apache > > > projects > > > > as invalid and try to recreate them all as Apache projects. > > Honestly, > > > > though, if you go to the Kafka ecosystem page virtually none of > the > > > most > > > > popular add-ons to Kafka are Apache projects. The most successful > > > > things in > > > > the Kafka ecosystem such as Yahoo Manager, librdkafka, a number of > > > other > > > > clients, as well as the existing REST layer have succeeded at > > > developing > > > > communities that actively contribute and use these pieces and I > > don't > > > > know > > > > that that is a bad thing unless that community proves to be > > > uninclusive, > > > > unresponsive, or goes in a bad technical direction--and those are > > > > failure > > > > modes that all open source efforts face. > > > > 3. We can do what I think makes the most sense and try to work > with > > > the > > > > projects that exist in the ecosystem and if the project doesn't > have > > a > > > > responsive community or wants to go in a different direction fork > or > > > > recreate that work. > > > > > > > > Of course any person can choose whatever of these options they want. > > But > > > > from my point of view, option (3) has been the path of the community > so > > > far > > > > and I think it has been quite successful. > > > > > > > > -Jay > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Tue, Oct 11, 2016 at 10:33 PM, Harsha Chintalapani < > ka...@harsha.io > > > > > > > wrote: > > > > > > > > > Neha, > > > > > "But I haven't seen any community emails or patches being submitted > > by > > > > you > > > > > guys, so I'm wondering why you are concerned about whether the > > > community > > > > is > > > > > open to accepting patches or not." > > > > > > > > > > I think you are talking about contributing patches to this > repository > > > > > right? https://github.com/confluentinc/kafka-rest . All I am > saying > > > > > the guidelines/governance model is not clear on the project and I > > guess > > > > its > > > > > driven by opening a github issue request. Its the repository owned > > by > > > > > confluent and as much I appreciate that the features we mentioned > are > > > in > > > > > the roadmap and welcoming us to contribute to the project. It > doesn't > > > > > gurantee what we want to add in the furture will be in your > roadmap. > > > > > > > > > > Hence the reason having it part of Kafka community will help a lot > as > > > > other > > > > > users can participate in the discussions. We are happy to drive > any > > > > > feature additions through KIPs which gives everyone a chance to > > > > participate > > > > > and add to the discussions. > > > > > > > > > > Thanks, > > > > > Harsha > > > > > > > > > > On Fri, Oct 7, 2016 at 11:52 PM Michael Pearce < > > michael.pea...@ig.com> > > > > > wrote: > > > > > > > > > > > +1 > > > > > > > > > > > > I agree on the governance comments whole heartedly. > > > > > > > > > > > > Also i agree about the contribution comments made earlier in the > > > > thread, > > > > > i > > > > > > personally am less likely to spend any of mine, or give project > > time > > > > > within > > > > > > my internal projects to developers contributing to another > > commercial > > > > > > companies project even so technically open source, as then there > is > > > > that > > > > > > commercial companies interest will always prevail and essentially > > can > > > > > > always have a final vote where disagreement. Im sure they never > > > intend > > > > > to, > > > > > > but there is that true reality. This is why we have community > open > > > > source > > > > > > projects. > > > > > > > > > > > > I can find many different implementations now of a rest endpoint > on > > > > > > GitHub, BitBucket etc. Each one has their benefits and > > disadvantages > > > in > > > > > > their implementation. By making / providing one this would bring > > > > together > > > > > > these solutions, unifying those developers and also bringing the > > best > > > > of > > > > > > all. > > > > > > > > > > > > I understand the concern on the community burden > adding/supporting > > > more > > > > > > surface area for every client. But something like REST is > universal > > > and > > > > > > worthy to be owned by the community. > > > > > > > > > > > > Mike > > > > > > > > > > > > > > > > > > ________________________________________ > > > > > > From: Andrew Schofield <andrew_schofield_j...@outlook.com> > > > > > > Sent: Saturday, October 8, 2016 1:19 AM > > > > > > To: dev@kafka.apache.org > > > > > > Subject: Re: [DISCUSS] KIP-80: Kafka REST Server > > > > > > > > > > > > There's a massive difference between the governance of Kafka and > > the > > > > > > governance of the REST proxy. > > > > > > > > > > > > In Kafka, there is a broad community of people contributing their > > > > > opinions > > > > > > about future enhancements in the form of KIPs. There's some > really > > > deep > > > > > > consideration that goes into some of the trickier KIPs. There are > > > > people > > > > > > outside Confluent deeply knowledgeable in Kafka and building the > > > > > > reputations to become committers. I get the impression that the > > > roadmap > > > > > of > > > > > > Kafka is not really community-owned (what's the big feature for > > Kafka > > > > > 0.11, > > > > > > for example), but the conveyor belt of smaller features in the > form > > > of > > > > > KIPs > > > > > > works nicely. It's a good example of open-source working well. > > > > > > > > > > > > The equivalent for the REST proxy is basically issues on GitHub. > > The > > > > > > roadmap is less clear. There's not really a community properly > > > engaged > > > > in > > > > > > the way that there is with Kafka. So, you could say that it's > clear > > > > that > > > > > > fewer people are interested, but I think the whole governance > > thing > > > > is a > > > > > > big barrier to engagement. And it's looking like it's getting out > > of > > > > > date. > > > > > > > > > > > > In technical terms, I can think of two big improvements to the > REST > > > > > proxy. > > > > > > First, it needs to use the new consumer API so that it's possible > > to > > > > > secure > > > > > > connections between the REST proxy and Kafka. I don't care too > much > > > > which > > > > > > method calls it uses actually uses to consume messages, but I do > > > care > > > > > that > > > > > > I cannot secure connections because of network security rules. > > > Second, > > > > > > there's an affinity between a consumer and the instance of the > REST > > > > proxy > > > > > > to which it first connected. Kafka itself avoids this kind of > > > affinity > > > > > for > > > > > > good reason, and in the name of availability the REST proxy > should > > > too. > > > > > > These are natural KIPs. > > > > > > > > > > > > I think it would be good to have the code for the REST proxy > > > > contributed > > > > > > to Apache Kafka so that it would be able to be developed in the > > same > > > > way. > > > > > > > > > > > > Andrew Schofield > > > > > > > > > > > > From: Suresh Srinivas <sur...@hortonworks.com> > > > > > > Sent: 07 October 2016 22:41:52 > > > > > > To: dev@kafka.apache.org > > > > > > Subject: Re: [DISCUSS] KIP-80: Kafka REST Server > > > > > > > > > > > > ASF already gives us a clear framework and governance model for > > > > community > > > > > > development. This is already understood by the people > contributing > > to > > > > > > Apache Kafka project, and they are the same people who want to > > > > contribute > > > > > > to the REST server capability as well. Everyone is in agreement > on > > > the > > > > > > need for collaborating on this effort. So why not contribute the > > code > > > > to > > > > > > Apache Kafka. This will help avoid duplication of effort and > forks > > > that > > > > > > may crop up, hugely benefitting the user community. This will > also > > > > avoid > > > > > > having to define a process similar to ASF on a GitHub project and > > > > instead > > > > > > there is a single community with clear understanding community > > > process > > > > as > > > > > > defined in ASF. > > > > > > > > > > > > As others have said, this is an important capability for Apache > > > Kafka. > > > > It > > > > > > is worth maintaining this as a part of the project. > > > > > > > > > > > > Regards, > > > > > > Suresh > > > > > > > > > > > > On 10/6/16, 8:32 AM, "Ofir Manor" <ofir.ma...@equalum.io> wrote: > > > > > > > > > > > > >I personally think it would be quite wasteful to re-implement > the > > > REST > > > > > > >gateway just because that an actively-maintained piece of > > > > > Apache-licensed > > > > > > >software is not governed directly by the Apache Kafka > community... > > > > While > > > > > > >kafka-rest repo is owned by Confluent, the contributors > including > > > the > > > > > main > > > > > > >one are also part of the Apache Kafka community, so there is a > > > chance > > > > > to > > > > > > >work this out. > > > > > > > > > > > > > >However, there are two valid concerns here that could be > > addressed, > > > > > around > > > > > > >community and accessibility: > > > > > > >>> What we are worried about is a project > > > > > > >>> that's not maintained in a community. So the process of > > accepting > > > > > > >>>patches > > > > > > >>> and priorities is not clear, and it's not developed in Apache > > > > > > >>>community. > > > > > > >>> Not only that, existing REST API project doesn't support new > > > client > > > > > API > > > > > > >and > > > > > > >>> hence there is no security support either. > > > > > > > > > > > > > >This might be easy to fix. Maybe Confluent / kafka-rest > community > > > can > > > > > > >clarify that - what is their contribution policy, dev style, > > roadmap > > > > > etc. > > > > > > >If they want, they can make an effort to encourage participation > > > from > > > > > > >people outside Confluent (easily accept contributions, invite > > > external > > > > > > >commiters or have open dev process similar to Apache Kafka etc), > > as > > > > > there > > > > > > >is definitely seems to be some interest on the list. That might > > > clear > > > > > the > > > > > > >community concern and help kafka-rest project (but that is a > > > > calculation > > > > > > >Confluent will have to make). > > > > > > > > > > > > > >The other, independent, concern is that REST is something that > is > > > > > expected > > > > > > >to be available out of the box with Kafka. I personally don't > feel > > > > > > >strongly > > > > > > >about it (better use proper, efficient APIs from day one), > though > > it > > > > is > > > > > > >definitely way smaller than adding a stream processing engine to > > the > > > > > > >project :) > > > > > > >Again,the kafka-rest "community" could take steps to make it > even > > > > easier > > > > > > >to > > > > > > >install, configure and run kafka-rest for new users on vanilla > > > Apache > > > > > > >Kafka > > > > > > >(outside the Confluent platform), if they wish that (or welcome > > > > > > >contributions to that end), but that is up to them. > > > > > > >Finally, if after the above steps were taken there would still a > > > > strong > > > > > > >desire to include a great rest gateway with Apache Kafka, I > assume > > > the > > > > > > >community could hypothetically fork the existing kafka-rest into > > an > > > > > Apache > > > > > > >Kafka subproject and maintain it "within Apache" instead of > > > > implementing > > > > > > >it > > > > > > >from scratch (though I'm not a lawyer etc) - but I cannot > imagine > > it > > > > > > >happen > > > > > > >without Confluent blessing, and I think that is likely much less > > > > optimal > > > > > > >(pulling in other Confluent / Apache licensed dependencies) than > > > > having > > > > > a > > > > > > >separate external community around kafka-rest. > > > > > > > > > > > > > > > > > > > > >Just my two cents, > > > > > > > > > > > > > > > > > > > > >Ofir Manor > > > > > > > > > > > > > >Co-Founder & CTO | Equalum > > > > > > > > > > > > > >Mobile: +972-54-7801286 <+972%2054-780-1286> > > <+972%2054-780-1286> <+972%2054-780-1286> > > | Email: > > > > > > ofir.ma...@equalum.io > > > > > > > > > > > > > >On Sun, Oct 2, 2016 at 11:23 PM, Harsha Chintalapani < > > > ka...@harsha.io > > > > > > > > > > > >wrote: > > > > > > > > > > > > > >> Neha & Jay, > > > > > > >> We did look at the open source alternatives. > > Our > > > > > > >>concern > > > > > > >> is what's the patch acceptance and adding features/ bug-fixes > to > > > the > > > > > > >> existing project under a Github (although it's licensed under > > > Apache > > > > > > >>2.0). > > > > > > >> It would be great if that project made available under Apache > > and > > > > > > >>driven by > > > > > > >> the community. Adding to the above, not all Kafka users are > > > > > interested > > > > > > >>in > > > > > > >> using the Java client API, they would like to have simple REST > > API > > > > > where > > > > > > >> they can code against using any language. I do believe this > adds > > > > value > > > > > > >>to > > > > > > >> Apache Kafka in itself. > > > > > > >> > > > > > > >> "For 1, I don't think there is value in giving in to the NIH > > > > syndrome > > > > > > >>and > > > > > > >> reinventing the wheel. What I'm looking for is a detailed > > > comparison > > > > > of > > > > > > >>the > > > > > > >> gaps and why those can't be improved in the REST proxy that > > > already > > > > > > >>exists > > > > > > >> and is actively maintained." > > > > > > >> > > > > > > >> We are not looking at this as NIH. What we are worried about > is > > a > > > > > > >>project > > > > > > >> that's not maintained in a community. So the process of > > accepting > > > > > > >>patches > > > > > > >> and priorities is not clear, and it's not developed in Apache > > > > > community. > > > > > > >> Not only that, existing REST API project doesn't support new > > > client > > > > > API > > > > > > >>and > > > > > > >> hence there is no security support either. > > > > > > >> We don't know the timeline when that's made available. We > would > > > like > > > > > to > > > > > > >>add > > > > > > >> admin functionality into the REST API. So the Roadmap of that > > > > project > > > > > is > > > > > > >> not driven by Apache. > > > > > > >> > > > > > > >> > > > > > > >> "This doesn't materially have an impact on expanding the > > usability > > > > of > > > > > > >> Kafka. In my experience, REST proxy + Java clients only > cover > > > > ~50% > > > > > of > > > > > > >> all > > > > > > >> Kafka users, and maybe 10% of those are the ones who will > use > > > the > > > > > > >>REST > > > > > > >> proxy. The remaining 50% are non-java client users (C, > > python, > > > > go, > > > > > > >>node > > > > > > >> etc)." > > > > > > >> > > > > > > >> REST API is most often asked feature in my interactions with > > Kafka > > > > > > >>users. > > > > > > >> In an organization, There will be independent teams who will > > write > > > > > their > > > > > > >> Kafka clients using different language libraries available > > today, > > > > and > > > > > > >> there is no way to standardize this. Instead of supporting > > several > > > > > > >> different client libraries users will be interested in using a > > > REST > > > > > API > > > > > > >> server. The need for a REST API will only increase as more and > > > more > > > > > > >>users > > > > > > >> start using Kafka. > > > > > > >> > > > > > > >> "More surface area means more work to keep things consistent. > > > > Failure > > > > > > >> to do that has, in fact, hurt the user experience." > > > > > > >> Having myriad Kafka client GitHub projects that support > > different > > > > > > >>languages > > > > > > >> hurts the user experience and pushes burden to maintain these > > > > > libraries. > > > > > > >> REST API is a simple code base that uses existing java client > > > > > libraries > > > > > > >>to > > > > > > >> make life easier for the users. > > > > > > >> > > > > > > >> Thanks, > > > > > > >> Harsha > > > > > > >> > > > > > > >> On Sat, Oct 1, 2016 at 10:41 AM Neha Narkhede < > > n...@confluent.io> > > > > > > wrote: > > > > > > >> > > > > > > >> > Manikumar, > > > > > > >> > > > > > > > >> > Thanks for sharing the proposal. I think there are 2 parts > to > > > this > > > > > > >> > discussion - > > > > > > >> > > > > > > > >> > 1. Should we rewrite a REST proxy given that there is a > > > > > > >>feature-complete, > > > > > > >> > open-source and actively maintained REST proxy in the > > community? > > > > > > >> > 2. Does adding a REST proxy to Apache Kafka make us more > agile > > > and > > > > > > >> maintain > > > > > > >> > the high-quality experience that Kafka users have today? > > > > > > >> > > > > > > > >> > For 1, I don't think there is value in giving in to the NIH > > > > syndrome > > > > > > >>and > > > > > > >> > reinventing the wheel. What I'm looking for is a detailed > > > > comparison > > > > > > >>of > > > > > > >> the > > > > > > >> > gaps and why those can't be improved in the REST proxy that > > > > already > > > > > > >> exists > > > > > > >> > and is actively maintained. For example, we depend on > zkClient > > > and > > > > > > >>have > > > > > > >> > found as well as fixed several bugs by working closely with > > the > > > > > people > > > > > > >> who > > > > > > >> > maintain zkClient. This should be possible for REST proxy as > > > well, > > > > > > >>right? > > > > > > >> > > > > > > > >> > For 2, I'd like us to review our history of expanding the > > > surface > > > > > > >>area to > > > > > > >> > add more clients in the past. Here is a summary - > > > > > > >> > > > > > > > >> > - This doesn't materially have an impact on expanding the > > > > > > >>usability of > > > > > > >> > Kafka. In my experience, REST proxy + Java clients only > > cover > > > > > ~50% > > > > > > >>of > > > > > > >> > all > > > > > > >> > Kafka users, and maybe 10% of those are the ones who will > > use > > > > the > > > > > > >>REST > > > > > > >> > proxy. The remaining 50% are non-java client users (C, > > > python, > > > > > go, > > > > > > >> node > > > > > > >> > etc). > > > > > > >> > - People are a lot more excited about promising to > > contribute > > > > > while > > > > > > >> > adding the surface area but not on an ongoing basis down > > the > > > > > line. > > > > > > >> > - More surface area means more work to keep things > > > consistent. > > > > > > >>Failure > > > > > > >> > to do that has, in fact, hurt the user experience. > > > > > > >> > - More surface area hurts agility. We want to do a few > > things > > > > > > >>really > > > > > > >> > well as well as be agile to be able to build on our core > > > > > > >>competency. > > > > > > >> > > > > > > > >> > > > > > > > >> > On Sat, Oct 1, 2016 at 5:38 AM Manikumar < > > > > manikumar.re...@gmail.com > > > > > > > > > > > > >> > wrote: > > > > > > >> > > > > > > > >> > > Hi Jay, > > > > > > >> > > > > > > > > >> > > Thanks for your reply. > > > > > > >> > > > > > > > > >> > > I agree that we can not add all the clients/tools > available > > in > > > > > > >> ecosystem > > > > > > >> > > page to Kafka repo itself. But we feel REST Interface is > > > > different > > > > > > >>from > > > > > > >> > > other clients/tools. Since any language that can work with > > > HTTP > > > > > can > > > > > > >> > > easily integrate with this interface, Having an "official" > > > REST > > > > > > >> > > interface helps user community. This also helps us to > > > integrate > > > > > well > > > > > > >> > > with external management and provisioning tools. Apache > > Kafka > > > > > > >>release > > > > > > >> > > with Java clients + REST interface is sufficient for most > of > > > the > > > > > > >>user > > > > > > >> > > deployments/requirements. This helps users to deal with > less > > > > > number > > > > > > >> > > of distributions/builds. > > > > > > >> > > > > > > > > >> > > Thanks, > > > > > > >> > > Manikumar > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > On Sat, Oct 1, 2016 at 4:24 AM, Jay Kreps < > j...@confluent.io > > > > > > > > wrote: > > > > > > >> > > > > > > > > >> > > > Hey guys, > > > > > > >> > > > > > > > > > >> > > > There's already a REST interface maintained as a > separate > > > > > > >> project--it's > > > > > > >> > > > open source and apache licensed and actively maintained > ( > > > > > > >> > > > https://github.com/confluentinc/kafka-rest). What is > > wrong > > > > with > > > > > > > > > > > > > > > > > > > > > > > > GitHub - confluentinc/kafka-rest: REST Proxy for Kafka > > > > > > github.com > > > > > > The Kafka REST Proxy provides a RESTful interface to a Kafka > > cluster. > > > > It > > > > > > makes it easy to produce and consume messages, view the state of > > the > > > > > > cluster, and ... > > > > > > > > > > > > >> that? > > > > > > >> > > You > > > > > > >> > > > mentioned that there was some compatibility concern, but > > > > > > >> compatibility > > > > > > >> > > has > > > > > > >> > > > to do with the consumer protocol guarantees not the repo > > the > > > > > code > > > > > > >>is > > > > > > >> > in, > > > > > > >> > > > right? Not sure that concern makes sense. > > > > > > >> > > > > > > > > > >> > > > We could argue for adding pretty much anything and > > > everything > > > > in > > > > > > >>the > > > > > > >> > > > ecosystem page in Kafka itself but I'm not sure that > would > > > > make > > > > > > >>the > > > > > > >> > > project > > > > > > >> > > > more agile. > > > > > > >> > > > > > > > > > >> > > > -Jay > > > > > > >> > > > > > > > > > >> > > > On Wed, Sep 28, 2016 at 12:04 AM, Manikumar < > > > > > > >> manikumar.re...@gmail.com > > > > > > >> > > > > > > > > >> > > > wrote: > > > > > > >> > > > > > > > > > >> > > > > Hi Kafka Devs, > > > > > > >> > > > > > > > > > > >> > > > > I created KIP-80 to add Kafka REST Server to Kafka > > > > Repository. > > > > > > >> > > > > > > > > > > >> > > > > There are already open-source alternatives are > > available. > > > > But > > > > > > >>we > > > > > > >> > would > > > > > > >> > > > > like to add REST server that > > > > > > >> > > > > many users ask for under Apache Kafka repo. Many data > > > Infra > > > > > > >>tools > > > > > > >> > comes > > > > > > >> > > > up > > > > > > >> > > > > with Rest Interface. > > > > > > >> > > > > It is useful to have inbuilt Rest API support for > > Produce, > > > > > > >>Consume > > > > > > >> > > > messages > > > > > > >> > > > > and admin interface for > > > > > > >> > > > > integrating with external management and provisioning > > > > > tools.This > > > > > > >> will > > > > > > >> > > > also > > > > > > >> > > > > allow the maintenance of > > > > > > >> > > > > REST server and adding new features makes it easy > > because > > > > > apache > > > > > > >> > > > community. > > > > > > >> > > > > > > > > > > >> > > > > The KIP wiki is the following: > > > > > > >> > > > > https://cwiki.apache.org/ > confluence/display/KAFKA/KIP- > > > > > > >> > > > > 80%3A+Kafka+Rest+Server > > > > > > >> > > > > > > > > > > >> > > > > Your comments and feedback are welcome. > > > > > > >> > > > > > > > > > > >> > > > > Thanks, > > > > > > >> > > > > Manikumar > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > -- > > > > > > >> > Thanks, > > > > > > >> > Neha > > > > > > >> > > > > > > > >> > > > > > > The information contained in this email is strictly confidential > > and > > > > for > > > > > > the use of the addressee only, unless otherwise indicated. If you > > are > > > > not > > > > > > the intended recipient, please do not read, copy, use or disclose > > to > > > > > others > > > > > > this message or any attachment. Please also notify the sender by > > > > replying > > > > > > to this email or by telephone (+44(020 7896 0011) and then delete > > the > > > > > email > > > > > > and any copies of it. Opinions, conclusion (etc) that do not > relate > > > to > > > > > the > > > > > > official business of this company shall be understood as neither > > > given > > > > > nor > > > > > > endorsed by it. IG is a trading name of IG Markets Limited (a > > company > > > > > > registered in England and Wales, company number 04008957) and IG > > > Index > > > > > > Limited (a company registered in England and Wales, company > number > > > > > > 01190902). Registered address at Cannon Bridge House, 25 Dowgate > > > Hill, > > > > > > London EC4R 2YA. Both IG Markets Limited (register number 195355) > > and > > > > IG > > > > > > Index Limited (register number 114059) are authorised and > regulated > > > by > > > > > the > > > > > > Financial Conduct Authority. > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Nacho (Ignacio) Solis > > > Kafka > > > nso...@linkedin.com > > > > > >