- Passive replication
- Fail-silent faults
- Atomic operations
- Total replication
- Static amount of replicas and known beforehand.
- $f+1$ replicas tolerate $f$ faults
- Client sends request to the primary server using the at most once semantics.
- Primary server handles all request by causal order.
- If there is a duplicated request, return saved response.
- Executes request and saves reply.
- Primary sends to the secondary servers the new state, reply and request id. Secondary servers should ACK.
- Primary replies to client.