Backend плейлистов музыкального стриминга

System designMiddle45 минпроверка — Спринт22-t035

Стриминговый сервис музыки (аналог Spotify/Apple Music). Спроектируйте backend-механику плейлистов (загрузка треков и стриминг уже есть).

Функциональные требования: создать свой плейлист и добавить в него существующий трек; на странице плейлиста нажать «Перемешать» — воспроизведение в случайном порядке; поставить на паузу и продолжить с того же места на другом устройстве с той же очередью; получить содержимое плейлиста и посмотреть сгенерированную очередь.

Дополнительно (по запросу): отставание при продолжении на другом устройстве — не более 8 секунд; DAU 90 тыс. на старте, через год 45 млн (DAU — 20% от всех пользователей, т.е. 450 тыс. → 225 млн); библиотека — 25 млн треков; за сутки пользователь слушает 30 треков, добавляет 5 треков в плейлисты, 5 раз открывает плейлист, создаёт 3 плейлиста в год; размер и число плейлистов не ограничены (в среднем 250 треков и 5 плейлистов на активного пользователя); p95 отклика 200 мс; система глобальная и отказоустойчивая.

Порядок, которого ждут: уточни требования → оцени нагрузку → API и данные → схема компонентов → узкие места и отказ. Не прыгай сразу в Kafka.

⌘ Enter — проверить