incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mattmann, Chris A (388J)" <chris.a.mattm...@jpl.nasa.gov>
Subject Re: [VOTE] Accept Curator into the Incubator
Date Tue, 05 Mar 2013 18:37:52 GMT
+1 binding.

Cheers,
Chris


On 3/5/13 10:21 AM, "Jordan Zimmerman" <jordan@jordanzimmerman.com> wrote:

>Discussion has settled down so I am calling a VOTE for acceptance of
>Curator into the Apache Incubator.
>
>The vote will close at on Friday, March 8, 2013.
>
>[ ] +1 Accept Curator into the Apache incubator
>[ ] +0 Don't care.
>[ ] -1 Don't accept Curator into the incubator because...
>
>Full proposal is pasted below and the corresponding wiki is
>http://wiki.apache.org/incubator/CuratorProposal
>
>Only VOTEs from Incubator PMC members are binding, but all are welcome to
>express their thoughts.
>
>Sincerely,
>
>Jordan Zimmerman
>
>=== PROPOSAL ===
>
>Curator - ZooKeeper client wrapper and rich ZooKeeper framework
>
>Abstract
>
>Curator is a set of Java libraries that make using Apache ZooKeeper much
>easier. While ZooKeeper comes bundled with a Java client, using the
>client is non-trivial and error prone.
>
>Proposal
>
>Curator is a set of Java libraries that make using Apache ZooKeeper much
>easier. While ZooKeeper comes bundled with a Java client, using the
>client is non-trivial and error prone. It consists of three components
>that build on each other. Curator Client is a replacement for the bundled
>ZooKeeper class that takes care of some low-level housekeeping and
>provides some useful utilities. Curator Framework is a high-level API
>that greatly simplifies using ZooKeeper. It adds many features that build
>on ZooKeeper and handles the complexity of managing connections to the
>ZooKeeper cluster and retrying operations. Curator Recipes consists of
>implementations of some of the common ZooKeeper "recipes". Additionally,
>Curator Test is included which includes utilities to help with unit
>testing ZooKeeper-based applications.
>
>Background
>
>Curator was initially developed by Netflix to make writing
>ZooKeeper-based applications easier and more reliable. Curator was
>open-sourced by Netflix on GitHub as an Apache 2.0 licensed project in
>July 2011. During this time Curator has been formally released many times
>and has gained widespread adoption.
>
>Rationale
>
>New users of ZooKeeper are surprised to learn that a significant amount
>of connection management must be done manually. For example, when the
>ZooKeeper client connects to the ensemble it must negotiate a new
>session, etc. This takes some time. If you use a ZooKeeper client API
>before the connection process has completed, ZooKeeper will throw an
>exception. These types of exceptions are referred to as "recoverable"
>errors. Curator automatically handles connection management, greatly
>simplifying client code. Instead of directly using the ZooKeeper APIs you
>use Curator APIs that internally check for connection completion and wrap
>each ZooKeeper API in a retry loop. Curator uses a retry mechanism to
>handle recoverable errors and automatically retry operations. The method
>of retry is customizable. Curator comes bundled with several
>implementations (ExponentialBackoffRetry, etc.) or custom implementations
>can be written.
>
>The ZooKeeper documentation describes many possible uses for ZooKeeper
>calling each a "recipe". While the distribution comes bundled with a few
>implementations of these recipes, most ZooKeeper users will need to
>manually implement one or more of the recipes. Implementing a ZooKeeper
>recipe is not trivial. Besides the connection handling issues, there are
>numerous edge cases that are not well documented that must be considered.
>For example, many recipes require that an ephemeral-sequential node be
>created. New users of ZooKeeper will not know that there is an edge case
>in ephemeral-sequential node creation that requires you to put a special
>"marker" in the node¹s name so that you can search for the created node
>if an I/O failure occurs. This is but one of many edge cases that are not
>well documented but are handled by Curator.
>
>Current Status
>
>Meritocracy
>
>Curator was initially developed by Jordan Zimmerman in 2011 at Netflix.
>Developers external to Netflix provided feedback, suggested features and
>fixes and implemented extensions of Curator. Netflix's engineering team
>has since maintained the project and has been dedicated towards its
>improvement. Contributors to Curator include developers from multiple
>organizations around the world. Curator will be a meritocracy as it
>enters the Incubator and beyond.
>
>Community
>
>Curator is currently used by a number of organizations all over the
>world. Curator has an active and growing user and developer community
>with active participation in the
>http://groups.google.com/group/curator-users mailing list and at its
>GitHub home: https://github.com/Netflix/curator.
>
>Since open sourcing the project, there have been fifteen individuals from
>various organizations who have contributed code.
>
>Core Developers
>
>The core developers for Curator are:
>
>	€ Jordan Zimmerman
>	€ Jay Zarfoss
>Jordan has contributed towards Apache ZooKeeper and both Jordan and Jay
>are familiar with Apache principles and philosophy for community driven
>software development.
>
>Alignment
>
>Curator is a natural complement for Apache ZooKeeper. Java users of
>ZooKeeper will naturally want to use Curator. When Curator graduates from
>Incubator it may be useful to distribute Curator artifacts as part of
>ZooKeeper releases as the preferred/recommended client side library.
>Further, at graduation a determination can be made as to whether Curator
>should become a Top Level Project or be merged into ZooKeeper itself.
>That being said, some IPMC members feel that Curator should grow into its
>own TLP rather than be a part of ZooKeeper.
>
>Known Risks
>
>Orphaned Products
>
>Curator is already deployed in production at multiple companies and they
>are actively participating in creating new features. Curator is getting
>traction with developers and thus the risks of it being orphaned are
>minimal.
>
>Inexperience with Open Source
>
>All code developed for Curator has been open sourced by Netflix under
>Apache 2.0 license. All committers to Curator are intimately familiar
>with the Apache model for open-source development and are experienced
>with working with new contributors.
>
>Homogeneous Developers
>
>The initial committers are from a single organization. However, we expect
>that once approved for incubation, the project will attract new
>contributors from diverse organizations and will thus grow organically.
>The submission of patches from developers from several different
>organizations is a strong indication that Curator will be widely adopted.
>
>Reliance on Salaried Developers
>
>It is expected that Curator will be developed on salaried and volunteer
>time, although all of the initial developers will work on it mainly on
>salaried time.
>
>Relationships with Other Apache Products
>
>Curator depends upon other Apache Projects: Apache ZooKeeper, Apache
>Log4J, and multiple Apache Commons components. Its build depends upon
>Apache Maven. Notably, there is interest from other Apache Projects such
>as HBase in adopting Curator as the client library for ZooKeeper. Apache
>James Mailbox has already incorporated Curator.
>
>An Excessive Fascination with the Apache Brand
>
>We would like Curator to become an Apache project to further foster a
>healthy community of contributors and consumers around the project. Since
>Curator directly interacts with Apache ZooKeeper and solves an important
>problem of many ZooKeeper users, residing in the Apache Software
>Foundation will increase interaction with the larger community.
>
>Documentation
>
>	€ Curator wiki at GitHub: https://github.com/Netflix/curator/wiki
>	€ Curator issues at GitHub: https://github.com/Netflix/curator/issues
>	€ Curator javadoc at GitHub: http://netflix.github.com/curator/doc/
>Initial Source
>
>	€ git://github.com/Netflix/curator.git
>Source and Intellectual Property Submission Plan
>
>	€ The initial source is already licensed under the Apache License,
>Version 2.0. https://github.com/Netflix/curator/blob/master/LICENSE.txt
>External Dependencies
>
>The required external dependencies are all Apache License or compatible
>licenses. Following components with non-Apache licenses are enumerated:
>
>	€ org.slf4j: MIT-like License
>	€ org.mockito: MIT-like License
>Cryptography
>
>Curator contains no known cryptography.
>
>Required Resources
>
>Mailing lists
>
>	€ curator-private (with moderated subscriptions)
>	€ curator-dev
>	€ curator-commits
>	€ curator-user
>GitHub Repositories
>
>http://github.com/apache/curator git://git.apache.org/curator.git
>
>Issue Tracking
>
>JIRA Curator (CURATOR)
>
>Other Resources
>
>The existing code already has unit and integration tests so we would like
>a Jenkins instance to run them whenever a new patch is submitted. This
>can be added after project creation.
>
>Initial Committers
>
>	€ Jordan Zimmerman (jzimmerman at netflix dot com)
>	€ Jay Zarfoss (jzarfoss at netflix dot com)
>Affiliations
>
>	€ Jordan Zimmerman, Netflix
>	€ Jay Zarfoss, Netflix
>Sponsors
>
>Champion
>
>	€ Patrick Hunt
>Nominated Mentors
>
>	€ Patrick Hunt
>	€ Enis Söztutar
>	€ Mahadev Konar
>	€ Luciano Resende
>Sponsoring Entity
>
>	€ Apache Incubator PMC
>


---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
For additional commands, e-mail: general-help@incubator.apache.org


Mime
View raw message