Distributed Computing: Principles, Algorithms, and Systems - Ajay D. Kshemkalyani (Cambridge University Press, 2011)