System Design: Hybrid Media Storage for Mobile Apps
Question Description
You are asked to design a hybrid media storage system for a mobile social/content app that combines on-device (local) and remote (cloud) storage to handle images and videos.
Core content
You should explain how media is stored, retrieved, and synchronized across the device and the cloud. Cover upload flows (including compression, format handling, and resumable uploads), read flows (cached thumbnails, progressive loading, and CDN usage), and management operations (edit, delete, and versioning). Discuss policies that decide when to keep media only locally, when to push to cloud object storage, and when to evict local cache.
Flow / stages to cover in the interview
- Client-side: capture, local persistence, background upload, retry/backoff, and offline access.
- Network/edge: adaptive upload (cell vs Wi‑Fi), use of mobile CDN for reads, and upload endpoints with authentication.
- Backend: object store (S3-like), metadata DB (user/media indexes), background transcoding/thumbnailing, sync service, and notification for device reconciliation.
Skill signals to demonstrate
You should show understanding of data locality, cache strategies (LRU, TTL, prefetch), consistency models (eventual vs strong), conflict resolution for edits across devices, scalability (sharding, CDNs, multipart uploads), and cost trade-offs (cold vs hot storage, bandwidth vs latency). Be prepared to justify design choices for availability, durability, and offline-first user experience.
Common Follow-up Questions
- •How would you handle conflicting edits to the same media file from two devices? Describe conflict resolution and metadata/versioning strategies.
- •Design an offline-first syncing strategy: how do you reconcile deletions, edits, and re-uploads when connectivity is intermittent?
- •What caching and eviction policies would you pick for device storage vs CDN edge caching, and why (LRU, LFU, TTL, size-based)?
- •How do you optimize for cost at scale (storage class lifecycle, deduplication, bitrate/transcoding decisions) while preserving latency?
- •How would you design resumable, chunked uploads for large videos and ensure integrity, ordering, and efficient retries?
Related Questions
Explore More Questions
Practice This Question with AI
Get real-time hints, detailed requirements, and insightful analysis of the question.