Figure 4 (B) shows the state transition diagram for an optimistic replication model that supports partial document editing and progressive update propagation. The state transition diagram is similar to that of the pessimistic replication model we discussed in Section 2.3.1, with states and transitions with the same names having equivalent semantics. The optimistic replication diagram differs in two ways: First, it has an extra state for conflict resolution. Second, it transitions from Clean and Partial-Clean to Empty and from Dirty to Conflict when the client replica learns about a more recent or concurrent component version. As was the case in Section 2.1.2, the eagerness with which the transitions to the Empty state are taken is an implementation decision.
Supporting both adaptation-aware editing and progressive update propagation, also enables client replicas to resolve conflicts even when the server's primary-replica just has a partial-fidelity version for the component. In such case, the client replica reads the conflicting partial-fidelity version, resolves the conflict, and chooses whether to propagate a full- or partial-fidelity version of the modifications. Resolving conflicts using partial-fidelity versions requires data-type specific functionality similar to that described in Section 2.1.3 for reflecting modifications made to partial-fidelity versions.