0
0
Microservicessystem_design~12 mins

Spotify architecture overview in Microservices - Architecture Diagram

Choose your learning style9 modes available
System Overview - Spotify architecture overview

Spotify is a music streaming service that lets users listen to songs on demand. It must handle millions of users streaming music simultaneously, provide personalized recommendations, and keep user data safe and synced across devices.

Architecture Diagram
User
  |
  v
Load Balancer
  |
  v
API Gateway
  |
  +-----------------------------+
  |                             |
  v                             v
User Service               Music Service
  |                             |
  v                             v
User Database             Music Database
  |                             |
  v                             v
Cache                      Cache
  |
  v
Recommendation Service
  |
  v
Message Queue
  |
  v
Analytics Service
Components
User
client
End user accessing Spotify app or web player
Load Balancer
load_balancer
Distributes incoming user requests evenly to API Gateway instances
API Gateway
api_gateway
Routes requests to appropriate microservices and handles authentication
User Service
service
Manages user profiles, authentication, and subscriptions
Music Service
service
Handles music catalog, streaming, and metadata
User Database
database
Stores user data like profiles, playlists, and preferences
Music Database
database
Stores music files metadata and catalog information
Cache
cache
Speeds up frequent data access for user and music data
Recommendation Service
service
Generates personalized music recommendations
Message Queue
message_queue
Handles asynchronous communication between services, e.g., analytics events
Analytics Service
service
Processes user behavior data for insights and improving recommendations
Request Flow - 14 Hops
UserLoad Balancer
Load BalancerAPI Gateway
API GatewayUser Service
User ServiceCache
CacheUser Service
User ServiceUser Database
API GatewayMusic Service
Music ServiceCache
CacheMusic Service
Music ServiceMusic Database
API GatewayRecommendation Service
Recommendation ServiceMessage Queue
Message QueueAnalytics Service
API GatewayUser
Failure Scenario
Component Fails:Cache
Impact:Increased latency as services must query databases directly; higher load on databases
Mitigation:Databases are replicated and optimized for read-heavy loads; cache is restored asynchronously; fallback to DB queries ensures availability
Architecture Quiz - 3 Questions
Test your understanding
Which component is responsible for distributing incoming user requests evenly?
AUser Service
BAPI Gateway
CLoad Balancer
DMessage Queue
Design Principle
This architecture uses microservices to separate concerns like user management, music catalog, and recommendations. It employs caching to reduce database load and message queues for asynchronous processing, ensuring scalability and responsiveness.