A fault-tolerant system is proposed for maintaining replicated data that is implemented from a set of fundamental building blocks. At the heart of the modular design is the PSYNC communication protocol. PSYNC is an interprocess communication protocol that explicitly preserves the partial order of messages exchanged among a set of processes in the presence of host and network failures. Fundamentally, each process sends a message in the context of those messages it has already sent or received. This relation is represented by a direct acyclic graph called a context graph. A copy of the context graph is maintained on each host. In addition to PSYNC and two graph-management protocols called COMPOSER and DIVIDER, the configuration includes five building block protocols. The entire system is implemented on a network of Sun3 workstations.