Nonblocking and orphan-free message logging protocols
Implementing fault-tolerant services using the state machine approach: a tutorial