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.)