Designing Concurrent Systems with Apache Zookeeper

Looking for team training?

We offer excellent trainer-led courses.


Designing Concurrent Systems With Apache Zookeeper



This course is unique in that it teaches the best practices and caveats of designing modern concurrent Big Data systems. ZooKeeper is an ideal tool to understand and practice the theory, and to reason about system performance, fault tolerance, and stability.

ZooKeeper is the defacto standard for coordinating multiple components in distributed systems. In this class, we will learn ZooKeeper architecture, design, and implementation. Then we will go through the standard ZooKeeper design patterns and their implementation.

In recent year, most of the design work with ZooKeeper is done through Curator. Curator makes the implementation of the design patterns – called recipes – much easier and more robust. We will work with Elections (such as Leader Latch and Leader Election), Locks, Barriers, and more.

The course includes a balance of theory and lab work.

Duration: 3 days

Audience: Developers, administrators, architects.



Experience and background in software development and administration


Lab environment:

Amazon EC2 servers will be provided students for installation, administration and lab work.  Students would need an SSH client and a browser to access the cluster.

Zero Install: There is no need to install Solr software on students’ machines! (although it is possible)


Course Contents


  1. ZooKeeper fundamentals


  • Distribute coordination system
  • Design goals and results
  • Common coordination tasks


  1. ZooKeeper Java and C API


  • Goals and capabilities
  • Differences, pros, and cons
  • Labs


  1. ZooKeeper environment


  • Track and react to ZooKeeper changes
  • Handling failures (network, apps)
  • Concurrency issues


  1. Curator and Exhibitor


  • Goals and design
  • Installation and configuration
  • Advantages and current trends


  1. Curator recipes and use cases


  • Elections
  • Locks
  • Barriers
  • Counters
  • Caches
  • Nodes
  • Queues
  • Centralized initialization


  1. ZooKeeper internals


  • Internals
  • Administration