Schneider, Fred B.2007-04-232007-04-231986-12http://techreports.library.cornell.edu:8081/Dienst/UI/1.0/Display/cul.cs/TR86-800https://hdl.handle.net/1813/6640The state machine approach is a general method for achieving fault tolerance and implementing decentralized control in distributed systems. This paper reviews the approach and identifies abstractions needed for coordinating ensembles of state machines. Implementations of these abstractions for two different failure models -Byzantine and fail-stop-are discussed. The state machine approach is illustrated by programming several examples. Optimization and system reconfiguration techniques are explained.3259534 bytes714019 bytesapplication/pdfapplication/postscripten-UScomputer sciencetechnical reportThe State Machine Approach: A Tutorialtechnical report