Hi Jordan, Here is some feedback. I like the proposal and it makes
sense to have such a project as either sub-project or incubator. I
have a few concerns, though:
1- I haven't been following closely the development of the recipes,
but I wonder if it really makes sense to deprecate the current ones in
favor of Curator's, or if it is a better idea to keep multiple
versions in the case of duplicates. People in the community have spent
time on the current recipes, so I don't like very much the idea of
dropping the current recipes without some evidence that the community
accepts it. Note that I'm not saying that deprecating is not the right
thing to do, I'm simply saying that we need to make sure that the
community agrees.
2- The set of committers needs to be more diverse. Perhaps it would be
easier to find more committers if you follow the incubation process,
given that typically people sign up for committership once you post a
proposal there. I wonder how many other people on this list would like
to volunteer to become a committer of Curator, though. I like the
project, but unfortunately I don't have the cycles to do it.
3- If Curator becomes a sub-project of ZooKeeper, then you need at
least one mentor. Is there anyone who would like to sign up to mentor
Curator?
-Flavio
On Dec 13, 2011, at 5:46 PM, Jordan Zimmerman 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.)
It would be good to have more diversity here. I would love to
contribute, but I don't feel I have cycles for now.
-Flavio
flavio
junqueira
research scientist
f...@yahoo-inc.com
direct +34 93-183-8828
avinguda diagonal 177, 8th floor, barcelona, 08018, es
phone (408) 349 3300 fax (408) 349 3301