This document provides recipes and solutions for implementing common distributed computing constructs like barriers, queues, locks, and leader election using Apache ZooKeeper. It describes how to build higher-level functions out of ZooKeeper's basic primitives by establishing conventions at the client level. The recipes avoid polling and expose ZooKeeper's ordering guarantees to enable synchronous behavior.