Principles Of Distributed Systems by Vijay K. Garg