Skip to content
QuizMaker logoQuizMaker
Activity
System Design: The Complete Guide
3. Advanced Case Studies
1. Introduction to System Design
2. Vertical vs Horizontal Scaling
3. Load Balancing
4. Caching Strategies
5. CDNs (Content Delivery Networks)
6. SQL vs NoSQL
7. Database Sharding & Partitioning
8. The CAP Theorem
9. Microservices Architecture
10. Message Queues & Event Streaming
12. Design BookMyShow (Ticket Booking)
14. Design Dropbox (Cloud File Storage)
15. How to Approach Any System Design Interview
16. Back-of-the-Envelope Estimation
17. Consistent Hashing
18. Bloom Filters & Probabilistic Data Structures
19. Database Replication
20. Leader Election & Consensus (Raft & Paxos)
21. Distributed Transactions (Saga, 2PC, Outbox)
22. Event Sourcing & CQRS
23. Unique ID Generation at Scale
24. Rate Limiting Algorithms
25. Circuit Breakers & Bulkhead Pattern
26. API Gateway, Proxies & Service Mesh
27. Real-Time Communication
28. Observability (Tracing, Logging, SLOs)
30. Design a Chat System (WhatsApp)
31. Design YouTube (Video Streaming)
32. Design a Web Crawler

14. Design Dropbox (Cloud File Storage)

Design a cloud file hosting service with sync, sharing, and offline support at massive scale.

Feb 22, 20266 views0 likes0 fires
18px

What Are We Building?

Cloud file hosting services like Dropbox , Google Drive , and OneDrive let users store files on remote servers and synchronize them across multiple devices seamlessly. Users can upload files, share them with collaborators, and access their data from any device, anywhere.

Dropbox alone has 700+ million registered users and stores over 1.2 exabytes of data. The core challenge isn''t just storage—it''s keeping files in sync across devices in near real-time while minimizing bandwidth usage and handling conflicts gracefully.

Clarifying Requirements

Functional Requirements

• Users can upload, download, update, and delete files from any device.

• Files are automatically synced across all connected devices.

• Users can share files and folders with others (view/edit permissions).

• The system should support offline editing—sync changes when connectivity returns.

• Maintain revision history so users can revert to previous file versions.

Non-Functional Requirements

• High availability: Users depend on file access for daily work.

• Data durability: 99.999999999% (eleven 9s)—losing a user''s files is unforgivable.

• Low-latency sync: Changes should propagate to other devices within seconds.

• Bandwidth efficiency: Only transfer what changed, not the entire file.

• Scalability: Support billions of files across hundreds of millions of users.

Design Constraints

• Mobile clients have limited bandwidth—minimize data transfer.

• Support files up to several GB (video, design files, databases).

• ACID-like guarantees for file metadata (no lost updates or phantom files).

Capacity Estimation

• Assume 500 million total users , 100 million daily active .

• Average user has 200 files , average file size 100 KB .

• Total files: 500M × 200 = 100 billion files .

• Total storage: 100B × 100 KB = ~10…

…

QuizMaker

Preview this lesson for free

Sign in to continue reading the full post.

Log in required
This lesson is available for logged-in users only.
No spam. Continue where you left off after signing in.

Share this article

Share on TwitterShare on LinkedInShare on FacebookShare on WhatsAppShare on Email

Test your knowledge

Take a quick quiz based on this chapter.

hardSystem Design
Quiz: Cloud File Storage
1 questions6 min

Continue Learning

15. How to Approach Any System Design Interview

Beginner
18 min

16. Back-of-the-Envelope Estimation

Beginner
14 min
Lesson 2 of 2 in 3. Advanced Case Studies
Previous in 3. Advanced Case Studies
12. Design BookMyShow (Ticket Booking)
Completed
You finished this lesson → take the quiz
1 questions • 6 min
Next section: 4. Interview Essentials
← Back to System Design: The Complete Guide
Back to System Design: The Complete GuideAll Categories