Описание системы:

Нужен событийный поток изменений остатков, индекс подписок и ограниченная доставка уведомлений. Уведомлять следует о значимом появлении товара, с дедупликацией и лимитами на пользователя.

Короткий ответ

Что ответить на собеседовании

Нужен событийный поток изменений остатков, индекс подписок и ограниченная доставка уведомлений. Уведомлять следует о значимом появлении товара, с дедупликацией и лимитами на пользователя.

Подробный разбор

Ответ с пояснениями

Условие

Описание системы: Компания обслуживает сеть собственных магазинов и управляет состоянием ассортимента магазинов.

Требуется:

  1. Пользователь может подписываться на наименование товара.
  2. Присылать сообщение пользователю, если товар появляется в системе (например, магазин наполняет сток или произошел возврат).
  3. Не перегружать пользователя коммуникациями, чтобы избежать большого шума от push-уведомлений.
  4. От момента обновления стока до получения push-уведомления — SLA 1 минута.

Задача: спроектировать систему, которая реализует описанный функционал с учетом масштабов — количество айтемов на платформе 200 тыс., MAU 120 млн.

Ответ

Нужен событийный поток изменений остатков, индекс подписок и ограниченная доставка уведомлений. Уведомлять следует о значимом появлении товара, с дедупликацией и лимитами на пользователя.

Храните подписки по товару и нужному магазину/региону, а события остатков публикуйте через outbox. Обработчик выявляет переход «недоступен → доступен», находит подписчиков и создаёт задания доставки. Популярные товары требуют шардированного fan-out и ограничения скорости.

Для снижения шума используйте cooldown, объединение событий и предпочтения пользователя. Одноминутный бюджет разделите между фиксацией, очередью и push-провайдером; фактическую доставку на отключённое устройство гарантировать нельзя. MAU 120 млн недостаточно для sizing: нужны число подписок, частота изменений, пики и допустимые задержки. Контролируйте lag, дубли, повторную недоступность товара и отписку перед отправкой.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее