Understanding distributed computing is not an easy task. This is due to the many facets of uncertainty one has to cope with and master in order to produce correct distributed software.
Considering the uncertainty created by asynchrony and process crash failures in the context of message-passing systems, the book focuses on the main abstractions that one has to understand and master in order to be able to produce software with guaranteed properties. These fundamental abstractions are communication abstractions that allow the processes to communicate consistently (namely the register abstraction and the reliable broadcast abstraction), and the consensus agreement abstractions that allows them to cooperate despite failures. As they give a precise meaning to the words "communicate" and "agree" despite asynchrony and failures, these abstractions allow distributed programs to be designed with properties that can be stated and proved.
Impossibility results are associated with these abstractions. Hence, in order to circumvent these impossibilities, the book relies on the failure detector approach, and, consequently, that approach to fault-tolerance is central to the book.
This volume is a printed version of a work that appears in the Synthesis Digital Library of Engineering and Computer Science. Synthesis Lectures provide concise, original presentations of important research and development topics, published quickly, in digital and print formats. For more information visit www.morganclaypool.com
“The value of this book lies in its narrow focus on the register, broadcast, and consensus abstractions. This allows the reader to obtain a thorough understanding of the essential foundations of distributed computing, without being distracted by other aspects of distributed systems that are less important or irrelevant from a foundational standpoint. As such, this book is an ideal textbook for graduate students in computer science who have an interest in distributed computing; it will also work as a reference for researchers and interested professionals. The book is very well written and has a rigorous approach to its subject. Needless to say, it requires substantial mathematical maturity from the reader. This maturity will allow the target audience to truly appreciate the clean and beautiful presentation of this difficult material.” – Burkhard Englert for ACM Computing Reviews