backend system design
PayPal
Venmo
Square

System Design: Hybrid Media Storage for Mobile Apps

Topics:
Object Storage
Data Locality
Caching
Roles:
Software Engineer
Backend Engineer
Mobile Engineer
Experience:
Mid Level
Senior

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

1Design a CDN-backed image delivery service with dynamic resizing and caching
2Design an offline sync system for a note-taking/mobile app with conflict resolution
3How to design resumable multipart uploads and a reliable background uploader for mobile
4Design a thumbnailing and transcoding pipeline for user-generated videos

Explore More Questions

Practice This Question with AI

Get real-time hints, detailed requirements, and insightful analysis of the question.

System Design: Hybrid Media Storage for Mobile Apps | Voker