Design a File Downloader Library from Frontend to Backend — System Design Interview Practice
Design a robust file download system with resume capability, progress tracking, and error handling. Work through the requirements, architecture trade-offs, and an interactive design review.
Requirements and concepts to consider
- Download files from URLsRequirement
- Resume interrupted downloadsRequirement
- Progress tracking and reportingRequirement
- Concurrent chunk downloadsRequirement
- Integrity verification (checksums)Requirement
- Handle large files (GBs)Requirement
- Retry logic for failuresRequirement
- Bandwidth throttlingRequirement
- file downloadConcept to explore
- httpConcept to explore
- chunkingConcept to explore
- resumeConcept to explore
- concurrencyConcept to explore