Topology is a relatively new branch of mathematics, growing and maturing since the early 20th century, though its roots can probably be traced to much earlier. Some basic concepts from topology, like topological invariance (often expressed by saying “a mug is homeomorphic to a doughnut”), are fairly well known to a large number of scientifically literate amateurs, and the subject has had a variety of applications, which are perhaps less well known. It has developed strong bonds with other branches of mathematics, including set theory, knot theory, geometry, and analysis.
It is claimed by some that the impetus for using topology in distributed computing arose from Fischer et al.’s seminal paper [1], which used a topological line of reasoning for a problem space described as a hypercube to arrive at an important impossibility result. While this result itself was of great interest, it also spurred on some researchers working in distributed computing to explore further connections and apply topological arguments to prove results in distributed computing [2,3,4].
Somewhat roughly speaking, the idea is to reduce the space of some problem in distributed computing to a topological structure (a simplicial complex, or a manifold), with a solution to the problem corresponding to some valid transformation of the structure. If it is known (or can be shown) based on the theory and results of topology that such a transformation is not possible, it then follows that the distributed computing problem has no solution either. Thus, this is a newer tool for impossibility results in distributed computing, and many such results previously proved otherwise have later been recast to use topology.
Until recently, there has not been a monograph that comprehensively covers the intersection of topology and distributed computing, with some books [5,6] having no coverage. This book thus finds its place for filling precisely this niche, and will be welcomed by readers who are thankful for not having to pore through the literature in hopes of attaining a modicum of comprehension. It covers its subject essentially from the first principles (though a prior understanding of the basics of distributed algorithms, and of algebraic topology, would serve the reader well).
The book consists of four parts. Part 1, “Fundamentals,” covers in three chapters the bare essentials of distributed algorithms and algebraic topology (which the authors refer to by its older name, combinatorial topology, and describe as “a higher-dimensional version of graph theory,” which may or may not be a description that satisfies most mathematicians). Part 2, “Colorless Tasks,” contains four chapters and covers the basics of wait-free algorithms (called “colorless” because only the input values of the processors are important, not which processors had what values) for consensus/agreement under shared memory as well as message passing.
Part 3, “General Tasks,” covers general--that is, “colored”--tasks over four chapters. Some advanced topics, mainly recent advances by the authors and others, are covered in Part 4, “Advanced Topics.”
While the authors’ writing is quite lucid and should invite few serious complaints from either computer scientists or mathematicians, it is probably true that relatively few computer scientists will find it easy to go through (mathematicians will, in all likelihood, fare much better, even if they know little of distributed computing to begin with). Computer science students and established researchers alike will probably find it easier to understand this work if they have taken a basic class in topology at the advanced undergraduate or basic graduate level, or at least have spent some time studying a standard textbook [7,8].