Practice designing a cross-device photo application with product requirements and system architecture. The solution covers user scenarios, MVP features, mobile/web clients, upload APIs, object storage, metadata schema, thumbnails, sharing permissions, sync tokens, offline retry, deduplication, scalability, and trade-offs.
##### Question
Design an application that lets users upload photos and seamlessly view, share, and download them across multiple devices. Cover user scenarios, MVP feature set, system architecture (clients, backend, storage, sync), and scalability considerations.
Quick Answer: Practice designing a cross-device photo application with product requirements and system architecture. The solution covers user scenarios, MVP features, mobile/web clients, upload APIs, object storage, metadata schema, thumbnails, sharing permissions, sync tokens, offline retry, deduplication, scalability, and trade-offs.
mediumProduct ManagerOnsiteProduct / Decision Making
9
0
Product and System Design Prompt: Cross-Device Photo Application
Design an application that lets users upload photos and seamlessly view, share, and download them across multiple devices.
Cover:
User scenarios and primary use cases.
MVP feature set, including functional and non-functional requirements.
System architecture:
Clients: mobile, web, and desktop.
Backend services and APIs.
Storage and data model.
Sync model across devices.
Scalability considerations and trade-offs.
Constraints & Assumptions
Focus on photos for MVP; video can be future scope unless you choose otherwise.
Privacy and access control must be correct.
Uploads should be reliable across flaky networks.
Sync can be eventually consistent for metadata, but sharing permissions should be strongly enforced.
Include thumbnails, deduplication, deletes, and offline or retry behavior.
Clarifying Questions to Ask Guidance
Is this a consumer backup app, collaborative album app, professional workflow, or enterprise media library?
What platforms are required for MVP?
What scale should we assume: users, photos per user, upload rate, and storage size?
Are edits, face recognition, search, or video in scope?
What privacy and compliance requirements apply?
Part 1 - User Scenarios and MVP
Define scenarios, use cases, and MVP features.
What This Part Should Cover Guidance
Backup, viewing, sharing, downloading, organizing, and multi-device access.
Manual and optional auto-upload.
Albums, favorites, thumbnails, search basics, share links or invited users.
Non-functional requirements such as reliability, privacy, performance, durability, and accessibility.
Part 2 - Architecture and Data Model
Design clients, backend services, APIs, storage, and data model.
What This Part Should Cover Guidance
Mobile/web/desktop clients.
Auth, upload, metadata, album, sharing, thumbnail, sync, and notification services.
Object storage for originals and derivatives.
Relational or document metadata store.
Tables or entities for users, devices, photos, assets, albums, permissions, and sync tokens.
Part 3 - Sync, Scale, and Trade-offs
Explain sync model, scalability, and trade-offs.
What This Part Should Cover Guidance
Resumable chunked upload, idempotency, deduplication, background processing, and offline retry.
Change log or sync tokens for clients.
Conflict handling for edits, deletes, albums, and sharing.
CDN, queues, workers, partitioning, caching, lifecycle storage, and cost controls.
Trade-offs among consistency, latency, cost, privacy, and feature scope.
What a Strong Answer Covers Guidance
A strong answer balances product requirements with system design. It should explain the user journeys, reliable upload pipeline, metadata and object storage separation, secure sharing, cross-device sync, and scaling trade-offs.
Follow-up Questions Guidance
How would you revoke a shared link reliably?
How would you handle duplicate uploads from multiple devices?
What happens if a user deletes a photo offline on one device?