Design a Dropbox-like file sync service
Company: Meta
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design a Dropbox-like file storage and sync service. Requirements: multi-device sync, offline edits, conflict detection and resolution, large file support via chunking and delta sync, deduplication and compression, versioning and restore, sharing with ACLs, notifications, scalability to hundreds of millions of users, consistency model, mobile constraints, encryption options (client-side vs. server-side), quota/billing, observability, and disaster recovery. Provide high-level architecture (clients and sync engine, metadata service, blob storage/CDN), data model (files, chunks, versions, tombstones), read/write flows, and strategies for hotspots, backfills, and migrations.
Quick Answer: This question evaluates a candidate's ability to design large-scale distributed file storage and synchronization systems, testing competencies in data modeling, consistency and conflict resolution, chunking/delta sync, durability, security, and operational concerns like observability and disaster recovery.