Question 25 of 30

Google Drive / Dropbox Sync

hardOpen designCommonly asked~45 minHLD roundBar raiserSenior / SDE-3GoogleMicrosoftAmazonAppleAtlassianAdobeStorage & Data ModellingConsistency & ConsensusQueues & AsyncCDN & Edge

The question, as asked

“Design a file sync service. A user edits a file on their laptop; it should show up on their phone, and on their colleague's machine, without re-uploading the whole thing.”

Scope it before you design it

The prompt is vague on purpose. These are the clarifying questions a strong candidate asks first — answer them out loud before you touch the architecture.

  • Sync or just storage? Upload-and-download is a much smaller system than a sync engine that reconciles divergent local state. Make them say which.
  • Is collaborative real-time editing in scope? If yes, that's a different question entirely — operational transforms or CRDTs — and you should scope it out explicitly.
  • Typical and maximum file size. A service for 2MB documents and one for 50GB video files make opposite decisions about chunking and storage.
  • How many devices per user, and do they sync while offline? Offline editing on two devices guarantees conflicts, which is the interesting part.
  • Sharing model: private, shared-with-user, public link? Permissions on a nested folder tree is its own hard problem — worth asking whether they want it.
  • What are the consistency expectations? 'Shows up within a few seconds when online' is achievable; 'always identical everywhere' is not, and saying so early is good.

Your answer, first

Commit something before anything unlocks. Saved on this device as you go.

0 charactersExpand for room to draw

Framework hint

Sketch or write your approach above first. The hint gives you the structure, not the answer.

Go deeper