This paper describes a modular approach for the construction of fault-tolerant agreement protocols. The approach is based on a generic consensus service. Faulttolerant agreement protocols are built using a client-server interaction, where the clients are the processes that must solve the agreement problem, and the servers implement the consensus service. This service is accessed through a generic consensus lter, customized for each speci c agreement problem. We illustrate our approach on the construction of various fault-tolerant agreement protocols such as non-blocking atomic commitment, group membership, view synchronous communication and total order multicast. Through a systematic reduction to consensus, we provide a simple way to solve agreement problems, and this leads to original solutions for problems like group membership and view synchronous communication. In addition to its modularity, our approach enables e cient implementations of agreement protocols, and precise characterization of their liveness and safety properties.
Finally, note that the decoupling of the two mechanisms implicitly appeared in REF , where a consensus service is used to solve agreement problems.
The Generic Consensus Service
IEEE Transactions on Software Engineering
Computer Science