Тенденция современных проектов развивается в сторону сервисно-ориентированной и параллельной  архитектуры.
Часть вычислений приходится распределять в масштабе кластера на несколько серверов, и при распараллеливании могут возникнуть проблемы частичного пропадания и несогласованности данных,  зависания процессов или гонки за ресурсами. Такие задачи синхронизации решаются с помощью  блокировок, а в масштабе кластера используются внешние сервисы. 
В моей практике приходилось строить такие сервисы самостоятельно, но впоследствии мы открыли для себя Zookeeper.  
В данном докладе пойдет речь о проблемах параллелизма, какие есть паттерны решения проблем и  немного о том, как мы решали это самописными средствами, но в основном свой доклад посвящу практике использования Zookeeper в распределенных системах.