Skip to content

Madinab99999/real-time-leaderboard

Repository files navigation

RealTime Leaderboard

Описание

RealTime Leaderboard — это сервис для управления таблицей лидеров в реальном времени. Он состоит из нескольких микросервисов, взаимодействующих через Redis Pub/Sub.

Задание

Заданиеhttps://roadmap.sh/projects/realtime-leaderboard-system.

Основные сервисы:

  1. Main-Service – главный сервис, обрабатывающий основные HTTP-запросы.
  2. Update-Leaderboard – подписывается на канал leaderboard_update, обновляет данные пользователя в таблице лидеров игры и глобальном рейтинге.
  3. Notification-Service – рассылает уведомления пользователям о смене позиций в таблице лидеров.
  4. RealTime-Leaderboard – автоматически обновляет глобальную таблицу лидеров в консоли при изменении данных.

API Эндпоинты

Таблица лидеров (leaderboard)

  • GET /leaderboard – получение актуальной глобальной таблицы лидеров (топ 10 игроков).
  • GET /leaderboard?top=5 – получение актуальной глобальной таблицы лидеров (топ 5 игроков).
  • GET /leaderboard?game=chess – получение таблицы лидеров игры шахматы (топ 10 игроков).
  • GET /leaderboard?game=chess&top=20 – получение таблицы лидеров игры шахматы (топ 20 игроков).
  • GET /leaderboard/rank/{id} – получение ранга конкретного пользователя в глобальном рейтинге и рейтинге игр, в которых пользователь когда-либо играл .

Очки (scores)

  • POST /scores/new – отправка нового результата пользователя. Пример запроса: { "user_id": "45", "game": "chess", "score": 7500 }

Каналы REDIS Pub/Sub

  • leaderboard_update – C помощью данного канала сервис Main-Service отправляет новые данные пользователя сервису Update-Leaderboard. Который в последствие обновляет данные в отсортированных наборах REDIS.
  • leaderboard_console – Сервис Update-Leaderboard после обработки данных отправляет уведомление об измении сервису RealTime-Leaderboard.
  • leaderboard_notification – Сервис Update-Leaderboard после обработки данных отправляет уведомление об измении сервису Notification.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published