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.