<?xml version="1.0"?>
<!--
  Copyright 2002-2004 The Apache Software Foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">

<document>
  
  <header>
    <title>ZooKeeper: Because Coordinating Distributed Systems is a Zoo</title>
  </header>
  
  <body>
    <p>ZooKeeper is a high-performance coordination service for
      distributed applications.  It exposes common services - such as
      naming, configuration management, synchronization, and group
      services - in a simple interface so you don't have to write them
      from scratch.  You can use it off-the-shelf to implement
      consensus, group management, leader election, and presence
      protocols. And you can build on it for your own, specific needs.
    </p>

    <p>
      The following documents describe concepts and procedures to get
      you started using ZooKeeper. If you have more questions, please
      ask the <a href="ext:lists">mailing list</a> or browse the
      archives.
    </p>
    <ul>

      <li><strong>ZooKeeper Overview</strong><p>Technical Overview Documents for Client Developers, Adminstrators, and Contributors</p>
      <ul><li><a href="zookeeperOver.html">Overview</a> - a bird's eye view of ZooKeeper, including design concepts and architecture</li>
      <li><a href="zookeeperStarted.html">Getting Started</a> - a tutorial-style guide for developers to install, run, and program to ZooKeeper</li>
      <li><a href="ext:relnotes">Release Notes</a> - new developer and user facing features, improvements, and incompatibilities</li>
      </ul>
      </li>
      
      <li><strong>Developers</strong><p> Documents for Developers using the ZooKeeper Client API</p>
      <ul>
            <li><a href="ext:api/index">API Docs</a> - the technical reference to ZooKeeper Client APIs</li>
      <li><a href="zookeeperProgrammers.html">Programmer's Guide</a> - a client application developer's guide to ZooKeeper</li>
      <li><a href="javaExample.html">ZooKeeper Java Example</a> - a simple Zookeeper client appplication, written in Java</li>
      <li><a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a> - sample implementations of barriers and queues</li>  
      <li><a href="recipes.html">ZooKeeper Recipes</a> - higher level solutions to common problems in distributed applications</li>
      </ul>
      </li>
      
      <li><strong>Administrators &amp; Operators</strong> <p> Documents for Administrators and Operations Engineers of ZooKeeper Deployments</p>
      <ul>
      <li><a href="zookeeperAdmin.html">Administrator's Guide</a> - a guide for system administrators and anyone else who might deploy ZooKeeper</li>
      <li><a href="zookeeperQuotas.html">Quota Guide</a> - a guide for system administrators on Quotas in ZooKeeper. </li>
      <li><a href="zookeeperJMX.html">JMX</a> - how to enable JMX in ZooKeeper</li>
      <li><a href="zookeeperHierarchicalQuorums.html">Hierarchical quorums</a></li>
      <li><a href="zookeeperObservers.html">Observers</a> - non-voting ensemble members that easily improve ZooKeeper's scalability</li>
      </ul>
      </li>
      
      <li><strong>Contributors</strong><p> Documents for Developers Contributing to the ZooKeeper Open Source Project</p>
      <ul>
      <li><a href="zookeeperInternals.html">ZooKeeper Internals</a> - assorted topics on the inner workings of ZooKeeper</li>
      </ul>
      </li>
      
      <li><strong>Miscellaneous ZooKeeper Documentation</strong>
      <ul>
      <li><a href="ext:wiki">Wiki</a></li>
      <li><a href="ext:faq">FAQ</a></li>    
      </ul>
      </li>

	  <li><strong>BookKeeper Documentation</strong>
	  <p> BookKeeper is a highly-available system that implements high-performance write-ahead logging. It uses ZooKeeper for metadata, 
	  which is the main reason for being a ZooKeeper contrib.
	  </p>
      <ul>
      <li><a href="bookkeeperOverview.html">henn, what's it again?</a></li>
	  <li><a href="bookkeeperStarted.html">Ok, now how do I try it out</a></li>
	  <li><a href="bookkeeperProgrammer.html">Awesome, but how do I integrate it with my app?</a></li>
      <li><a href="bookkeeperStream.html">Can I stream bytes instead of entries?</a></li>
      </ul>
      </li>
    </ul>
  </body>
  
</document>
