From Paxos to Zookeeper: Distributed Consistency Principles and Practice Sources