Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Zookeeper >> mail # dev >> Proposal: create a separate ZooKeeper release artifact for recipes

Copy link to this message
Re: Proposal: create a separate ZooKeeper release artifact for recipes
Thanks Jordan.
Want to start a new thread on this? THis has already dragged on for a
while. Can you also include - what happens to existing recipes? Would
this new sub project include the already existing recipes and port
them using Curator?

On Mon, Dec 12, 2011 at 11:06 PM, Jordan Zimmerman
> 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.
> == 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 ([EMAIL PROTECTED]), 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, recipe algorithms and best practices 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. 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
> Test:
> * Test NG
> * Apache Commons Math
> * Mockito
> * Javaassist