Introduction to Reliable Distributed Programming - Guerraoui, Rachid (Springer-Verlag Berlin Heidelberg, 2006)