...

/

Requirements of Google Docs Design

Requirements of Google Docs Design

Understand the requirements for designing a collaborative editing service.

Requirements

Let us understand the functional and non-functional requirements for designing a collaborative editing service.

Functional requirements

This section will list down the activities a user will be able to perform using the collaborative document editing service:

  • Document collaboration: Multiple users should be able to edit a document simultaneously. Also, a large number of users can view a document.
  • Conflict resolution: The system should push the edits done by one user to all the other collaborators. Also, the system should resolve conflicts between users if they are editing the same portion of the document.
  • Suggestions: User should get suggestions about completing frequently used words, phrases, keywords in a document, and fixing grammatical mistakes.
  • View count: Editors of the document can also see the view count of the document.
  • History: User should be able to see the history of collaboration on the document.

A real-world document editor has to have functions like document creation, deletion, and managing user access as well. We focus on the core functionalities listed above but we also discuss the possibility of other functionalities such as chatting between users in the lessons ahead.

Non-functional Requirements

  • Latency: Different users can be connected to collaborate on the same document. Maintaining low latency is challenging for users connected from different regions.
  • Consistency: The system should be able to do conflict resolution between users editing the document concurrently, thereby enabling a consistent view of the document. At the same time, users in different regions should see the updated state of the document. Maintaining consistency is important for users connected to the same as well as different zones.
  • Availability: The service should be available at all times and show robustness against failures.
  • Scalability: A large number of users can be using the service at the same time. Either viewing the same document or creating new documents.

Estimations

In this section, we will make resource estimations based on our assumptions.

Assumptions: We assume the following:

  • We assume that there are eighty million Daily Active Users (DAU).
  • The maximum number of users able to edit a document concurrently is 20.
  • The size of a textual document is 100 KBs.
  • Thirty percent of all the documents contain images whereas only 2 percent of documents contain videos.
  • The collective storage required by images in a document is 800 KBs whereas each video is 3 MBs.
  • A user creates 1 document in one day.

Based on these assumptions, we will make the following estimations.

Storage requirements

Considering that each user is able to create 1 document a day, there are a total of 80 Million documents created each day. Below, we estimate the storage required for one day:

Estimation for Storage Requirements

Number of documents created by each user1per day
Number of active users80Million
Number of documents in a dayf80Million
Storage required for textual content/dayf8TB
Storage required for images/dayf19.2TB
Storage required for video content/dayf4.8TB
Total storage required/dayf32TB

Total storage required for one day = 8+19.2+4.8=32 TBs8 + 19.2 + 4.8 = 32\ TBs ...

Create a free account to access the full course.

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