Spotify Stats Universe — System Design

12 components · 9 links · 5 zones

Loading graph…
Legend
  • Standard node
  • External / inferred (dashed)
  • Database / persistent store
  • Load balancer / proxy
  • Zone band (small-caps title)
  • Link / dependency
  • Data flow (dashed)
  • Bidirectional (request/response)

Inferred components — evidence

  1. All five external-service nodes (Zone 5) are drawn dashed as third-party endpoints; their hostnames are verified literals in code: https://api.spotify.com/v1, https://accounts.spotify.com/api/token, and https://accounts.spotify.com/authorize.
  2. The localStorage node is inferred from Zustand persist middleware with store keys spotify-auth-storage and dashboard-storage (stores/auth-store.ts, stores/dashboard-store.ts). Solid border — mechanism is explicit.
  3. The HTTP port :3000 on the client→server edge is the development host only (next dev in package.json); production runs on Vercel (region iad1, vercel.json) where the public port is [unresolved] from code.
  4. The Genre Fallback in-memory map is verified (ARTIST_GENRE_MAP in genre-stats/route.ts) and used only when the Spotify API returns no genres.
  5. No conventional database, cache server, message broker, or background worker was found; persistence is limited to browser cookies and localStorage. These categories are intentionally absent rather than inferred.