Design (LLD) Internet Download Manager like IDM - Machine Coding Interview
Table of contents
Feature Requirements
Download File: The system should support downloading a file from a given URL using HTTP/HTTPS protocols.
Segmented Downloading: Divide a file into multiple segments and download them in parallel for faster speed.
Pause and Resume: Support pausing downloads and resuming them later without re-downloading completed parts.
Cancel Download: Provide an option to cancel ongoing downloads and clean up associated resources.
Concurrent File Downloads: Allow multiple files to be downloaded simultaneously, with a limit on the maximum concurrent downloads.
Retry on Failure: Implement automatic retry logic for failed downloads due to network errors, with a configurable retry count.
Progress Monitoring: Provide real-time progress updates for each file and each segment being downloaded.
File Integrity Check: Verify the integrity of the downloaded file using checksum validation or other mechanisms.
File Storage: Save files to a user-specified directory with custom file names, and ensure no data corruption occurs.
Solution
We will cover this in our course, this will be visible by 20 January to paid User.