- Наш проект это аналог Spotify.
Load Balancer ->
Api-gateway ->
Services:
- auth
- user (аккаунт, плейлисты, авторы)
- recommends (рекомендации треков)
- songs (обрабатывает новые песни, которые поступают в S3)
- search(поиск по песням, исполнителям)
- Технологии:
- сервисы api-gateway (https на внешку и внутри по grpc/http общается, также сервис использует Redis как кэш), auth (grpc, Postgres как БД), user(grpc, Postgres как БД) на Go
- сервисы songs (http, связан с S3) и search (http, поиск в elasticsearch) написать на C++
- сервис рекомендаций на Python (обшается через Kafka с сервисом user)
- метрики: prometheus и визуализация grafana
- трейсы: open telemetry и визуализация jaeger
- логи: сборщик + elasticsearch + визуализация
- деплой: сервис -> контейнер в регистри -> k8s
Твои задачи:
- Посмотри чего не хватает в описании проекта и дополни описание, закрывая то, чего не хватает.
- Необходимо задать API контракт, который будет иметь под собой UI, где можно будет посмотреть все ручки и ручки будут иметь два состояния: draft (контракт ручки не зафиксирован) и ready (контракт ручки зафиксирован). Также необходимо предусмотреть API версионирование
- Необходимо описать работу приложения, по типу: авторизация запросом и ответ в json
- Необходимо пояснить сложные вопросы, по типу того, как возвращать трек на UI?
- Необходимо учесть апгрейды сервисов и переход на новые версии (как это будет делаться)