Textbook
Distributed Systems: Principles and Paradigms
Andrew S. Tanenbaum and Maarten van Steen