This proposal looks good to me in general. I'm in favor of having improved recipes available for users, Curator seems to fit the bill. However as I stated previously while I'd be +1 for this to go to the incubator (with ZK PMC as sponsor), I'm -0 for this as a sub/artifact. (this is the same as my vote for BK btw)
I have similar comments to Flavio: * what does it mean to deprecate the old recipes? Carry them fwd as deprecated in Curator but not drop them? * lang bindings - would Curator accept all comers (c, python, perl, etc...). If not it doesn't seem like a great replacement for current recipes. * re diversity I think it's fine, that's what incubation is for - to build diversity. Patrick On Tue, Dec 13, 2011 at 8:46 AM, Jordan Zimmerman <jzimmer...@netflix.com> wrote: > While we're not interested in submitting Curator to the Incubator, I've > prepared a proposal for including Curator as a ZooKeeper sub-project or > inclusion in the main project. Here's the proposal (for commenting, etc.): > > > Curator, a ZooKeeper Recipe Proposal > ==================================== > > == Abstract == > Users of Apache ZooKeeper would greatly benefit from having a high quality > implementation of common recipes included with the ZooKeeper distribution. > Curator is that implementation. > > == Proposal == > Apache ZooKeeper should produce a new artifact for recipes/applications. > This artifact should either be a ZooKeeper sub-project or top-level part > of ZooKeeper itself. For Java (and possibly other JVM based languages), > the Netflix Curator project should be the artifact. > > The recipe implementations currently included with the ZooKeeper > distribution should be deprecated in favor of Curator. > > == Background == > ZooKeeper consists of server software and client software. The client > implementations that are part of the ZooKeeper distribution are very low > level and difficult to use correctly. Further, implementing the recipes > listed in the ZooKeeper documentation is non-trivial and involves deep > knowledge of ZooKeeper best practices and edge cases. > > == Rationale == > The existing clients for ZooKeeper are difficult to use and are limited. > Further, correct usage of ZooKeeper is non-trivial and non-obvious. Users > of ZooKeeper are mostly interested in the recipes/applications and are not > likely interested in becoming experts in the minutiae of correct ZooKeeper > client usage. What they want is a simple way to use the recipes. Curator > is directed at this goal. > > == Current Status == > Curator is an active open source project hosted at Github > (https://github.com/netflix/curator). It has no dependencies other than > industry standard libraries. It provides implementations for all recipes > listed on the ZooKeeper recipes doc as well as a high level framework for > using ZooKeeper that simplifies most of the low level housekeeping > normally required. > > Curator has been open since October, 2011 and has been reviewed by several > active members of the ZooKeeper community. > > Netflix is a strong proponent of open source and is supportive of > providing the community with this project. > > == Core Developers == > The initial set of committers are all employees of Netflix, Inc. The lead > developer is Jordan Zimmerman (jzimmer...@netflix.com), Senior Platform > Engineer at Netflix, Inc. > > == Alignment == > The current ZooKeeper distribution has an obvious hole in regard to > recipes/applications. Curator's minimal dependencies and use of standard > ZooKeeper components and recipe algorithms make it a natural compliment to > the ZooKeeper distribution. > > == Known Risks == > Orphan-ing of Curator: > ZooKeeper has become a major component at Netflix. Curator is the > abstraction being used. > > Open Source Experience: > Netflix has major experience with open source. All the committers of > Curator have long experience with open source. > > Homogenous/Salaried Developers: > The current committers are all salaried employees of Netflix. This > proposal would help by having a more diverse set of committers. > > Ties to Apache products: > The initial codebase relies heavily on existing Apache technologies and > will continue to do so. > > == Documentation == > Comprehensive documentation is at https://github.com/Netflix/curator/wiki > > == Initial Source == > The source code currently is hosted at Github at: > https://github.com/Netflix/curator > > == External Dependencies == > Runtime: > * Apache ZooKeeper > * Google Guava > > Testing: > * Test NG > * Apache Commons Math > * Mockito > * Javaassist > > Building: > * Apache Maven > > == Initial Committers == > Jordan Zimmerman (Netflix, Inc.) > Jay Zarfoss (Netflix, Inc.) > Jerome Boulon (Netflix, Inc.) > >