Handling Large Blobs
Handling Large Blobs (Binary Large Objects)
High-scale architectures optimize binary file storage (videos, images, zip files) to prevent application server memory exhaustion.
1. High-Level Design
Never upload or download raw file binaries directly through application servers, as this consumes connection threads and exhausts CPU memory.
Client App ---> Gateway ---> Object Storage (S3 via Presigned URL)
|
Metadata DBIngestion Flow
1. Request Upload: Client requests an upload token.
2. Presigned URL: Application server generates a short-lived presigned URL pointing to Object Storage (AWS S3) and returns it.
3. Direct Upload: Client uploads binary data directly to S3 using the URL.
4. Notification: S3 triggers an event notification (via SQS/Lambda) to notify the metadata database of the new file.
2. Multipart Upload API
For large files (> 100 MB), use multipart upload APIs. The client splits the file into parallel segments, uploads them concurrently, and S3 reassembles the parts.
3. References & Tech Blogs
Related Topics
Expand your knowledge by learning about adjacent concepts in system design.
Consistent Hashing Basic
Deconstruct routing rings, virtual nodes, and distribution keys.
Networking Essentials
Learn the important parts of networking that you'll need to know for your system design interviews
API Design
Learn about API design for system design interviews
Cheat Sheet Utility
View and print a concise system design reference card.