Design: Spotify Music Streaming Service
Design covers backend microservices, data storage, streaming delivery, and user interaction APIs. Does not cover detailed frontend UI design or DRM encryption specifics.
Functional Requirements
FR1: Allow users to search and play music tracks instantly
FR2: Support personalized playlists and recommendations
FR3: Handle millions of concurrent users streaming music
FR4: Provide offline playback for subscribed users
FR5: Allow users to follow artists and share playlists
FR6: Support multiple devices and platforms (mobile, desktop, web)
FR7: Ensure high availability and low latency for streaming
FR8: Provide analytics on user listening behavior
Non-Functional Requirements
NFR1: Scale to 100 million monthly active users
NFR2: API response time p99 under 200ms for search and playback requests
NFR3: Streaming latency under 1 second from request to playback start
NFR4: Availability target of 99.9% uptime
NFR5: Data consistency for user playlists and subscriptions
NFR6: Support global distribution with data centers in multiple regions