Requirements of Google Docs’ Design

Lesson 170 of 25610 min readPremium lesson preview
In this lesson2 sections

Requirements of Google Docs’ Design

Define what collaborators should see while edits are pending, what “saved” means, and which history remains recoverable. Then estimate document creation and viewing separately from the continuous edit stream.

Requirements

We will define the functional and non-functional requirements for a collaborative editing service.

Functional requirements

Users can perform the following activities:

  • Document collaboration: Multiple users can edit a document simultaneously, and a large number of users can view it.

  • Conflict resolution: Propagate edits and reconcile concurrent operations using a defined document model. Replicas may temporarily differ while updates are in flight, but must converge under the protocol’s delivery assumptions.

  • Suggestions: Offer word or phrase completions and optional grammar suggestions. Treat accepting a suggestion as an edit; it must not silently overwrite a collaborator’s intervening change.

  • View count: Editors can see the document view count.

  • History: Users can view the collaboration history.

Keep creation, deletion, and access management simple, but retain authorization checks on every document session and edit. Core collaboration depends on knowing who may read or modify the current document.

The rest of this lesson is for Premium members

Premium opens every lesson in this course, along with all questions and solutions on PracHub.