Distal: A Framework for Implementing Fault-tolerant Distributed Algorithms
We introduce Disal, a new framework that simplifies turning pseudocode of fault tolerant distributed algorithms into efficient executable code. Without proper tool support, even small amounts of pseudocode normally ends up in several thousands of lines of non-trivial Java or C++ code. Disal is implemented as a library in Scala and consists of two main parts: a domain specific language (DSL) in which algorithms are expressed and an efficient messaging layer that deals with low level issues such as connection management, threading and (de)serialization. The DSL is designed such that implementations of distributed algorithms highly resemble the pseudocode found in research papers. By writing code that is close to protocol description, one can be more convinced that the implemented system really reflects the protocol specification on paper. Disal does not only make it simple and intuitive to implement distributed algorithms but it also leads to efficient implementations.