Practice this topic in a realistic system design interview
A user uploads a 2 GB video file. After about 20 minutes, the connection drops at 80%. If the upload was handled as one long request, the user starts again from 0%.
The server can suffer too. A naive implementation may buffer too much data, tie up worker threads, hit load balancer timeouts, or proxy every byte through application servers before writing to storage.
Large-file handling is mostly about avoiding that all-or-nothing path. The interview patterns are straightforward: split files into parts, make retries safe, move bytes directly to object storage when possible, and keep metadata separate from raw file data.
In an interview, structure the answer around the data path:
Large-file handling shows up in systems that deal with media, documents, or data transfers:
| Problem | Why Large File Handling Matters |
|---|---|
| Design Google Drive/Dropbox | Users upload multi-GB files that need chunking, resume, and sync |
| Design YouTube | Video uploads can be hours long, requiring resumable uploads and transcoding |
| Design Slack/Teams | File sharing in chat requires efficient upload and CDN distribution |
| Design GitHub | Large repos with binary assets need efficient storage and cloning |
| Design Backup System | Terabytes of data require incremental uploads and deduplication |
| Design Netflix | Streaming large video files needs range requests and adaptive bitrate |