Evaluation of Google Docs Design

Let's understand how we will fulfill the non-functional requirements in a collaborative document editing system.

We have now explained the design and how our design fulfills the functional requirements for a collaborative document editing service. This lesson will focus on how our design meets the non-functional requirements. In particular, we will focus on consistency, latency, scalability, and availability.

Consistency

We have explained how we will achieve strong consistency for conflict resolution in a document through two technologies: Operational Transformation (OT) and Conflict-free Resolution Data Types (CRDTs). Furthermore, TimeSeries DB enables us to preserve the order of events (once OT or CRDT have resolved any conflicts, the final result is saved in the DB). Thus, achieving consistency in terms of individual operations.

We are also interested in keeping the document state consistent across different servers in a data center. To replicate an updated state of a document within the same data center at the same time, we can use peer-to-peer protocols like Gossip protocolAlso referred to as epidemic protocol which is used for disseminating data across all nodes in a network to achieve consistency.. Not only will this strategy improve consistency, but it will also improve availability.

Create a free account to access the full course.

By signing up, you agree to Educative's Terms of Service and Privacy Policy