PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Meta

Design user top-10 songs service

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability to design scalable, real-time streaming and batch data pipelines that support per-user ranking, sessionization, deduplication, privacy-preserving storage, and backfill/replay for a high-throughput music service.

  • hard
  • Meta
  • System Design
  • Software Engineer

Design user top-10 songs service

Company: Meta

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

Design a service to compute each user's Top 10 songs from streaming/listening events. Cover event ingestion, deduplication, sessionization, counters/windows (e.g., last 7/30 days), ranking per user, batch vs. streaming pipelines, storage choices (hot cache vs. warehouse), freshness SLAs, APIs for retrieval, personalization signals, privacy/PII handling, and backfill/replay strategy.

Quick Answer: This question evaluates a candidate's ability to design scalable, real-time streaming and batch data pipelines that support per-user ranking, sessionization, deduplication, privacy-preserving storage, and backfill/replay for a high-throughput music service.

Related Interview Questions

  • Design Top-K, Crawler, and Chess Systems - Meta (hard)
  • Design Search And Web Crawling Systems - Meta (medium)
  • Design an Instagram-Style Social Feed - Meta (medium)
  • Design an Online Game Leaderboard - Meta (hard)
  • Design an On-Demand Delivery Platform - Meta (medium)
Meta logo
Meta
Aug 7, 2025, 12:00 AM
Software Engineer
Technical Screen
System Design
1
0

Design a Service to Compute Each User's Top 10 Songs

Context

You are designing a backend service for a large-scale music streaming platform to compute and serve each user's Top 10 songs from listening events. The system must support both real-time freshness and offline accuracy/reproducibility.

Assume: hundreds of millions of MAUs, peak 1–2M events/sec globally, multi-region deployment, and clients that can buffer and upload events late or out of order.

Requirements

Functional

  1. Ingest streaming listening events from clients (mobile/web/TV), handle duplicates, out-of-order and late arrivals, and occasional replays.
  2. Define “listen” eligibility (e.g., listened ≥ N seconds, not muted/seek-skipped) and support sessionization (e.g., 30-min gap) for downstream features.
  3. Maintain per-user ranking for windows: last 7 days and last 30 days (Top 10 songs). Consider also all-time if helpful.
  4. Provide both streaming (low-latency) updates and batch recomputation/backfill for correctness.
  5. Serve results via APIs with configurable window, limit, and as-of freshness.

Non-Functional

  • Freshness SLA: P95 end-to-end under ~1–2 minutes for streaming updates; daily correctness reconciliation.
  • High availability and horizontal scalability.
  • Privacy: minimize PII, secure transit/at-rest, support deletion/retention policies and access control.
  • Backfill and replay: ability to recompute windows for past dates and correct bad data.

Scope to Cover

  • Event ingestion, deduplication, sessionization.
  • Counters/windows for last 7/30 days.
  • Per-user ranking and tie-breaking.
  • Batch vs. streaming trade-offs.
  • Storage: hot cache vs. warehouse/lake.
  • Freshness SLAs and data quality.
  • APIs for retrieval.
  • Personalization signals/weights.
  • Privacy/PII handling.
  • Backfill/replay strategy.

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Meta•More Software Engineer•Meta Software Engineer•Meta System Design•Software Engineer System Design
PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.