Distributed Systems: Concepts and Design (3rd Edition)