Design a file sync service: files put in a folder on one device appear on the others. Sharing and permissions are out of scope.
Requirements
- Upload a file of any size
- Sync a change to other devices without re-sending the whole file
- Survive a connection dropping mid-upload
- Show sync state per file
Scale
- Users
- 100M (10M daily active)
- File uploads
- 500M per day
- Average file
- 1MB
- Read:write
- roughly 2:1
Draw the design on the board, fill in Your answer, then submit.