Requirements of Google Docs’ Design

Learn about the requirements for designing a collaborative editing service.

Requirements

Let’s look at the functional and non-functional requirements for designing a collaborative editing service.

Functional requirements

The activities a user will be able to perform using our collaborative document editing service are listed below:

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

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

Press + to interact
Functional and non-functional requirements of collaborative editing service
Functional and non-functional requirements of collaborative editing service

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 resolve conflicts 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 both the same and different zones.
  • Availability: The service should be available at all times and show robustness against failures.
  • Scalability: A large number of users should be able to use the service at the same time. They can either view the same document or create new documents.

Resource estimation

Let’s make some resource estimations based on the ...

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.