The goal of a consensus algorithm is to allow multiple machines to work as a coherent group which can survive the failures from some of its members. Paxos has been the most common consensus algorithm used around, yet it is quite hard to understand, and hard to implement.