Introduction to Reliable distributed programming - Guerraoui, Rachid (Springer, 2006)