Войти Регистрация
System design

29. Уведомления по сохранённым поискам Авито

Средняя

Пройдите шаги: уточните требования, оцените нагрузку, выберите решения, нарисуйте схему.

Человек ищет «двушка, Казань, Ново-Савиновский район, до 6 млн ₽» и сохраняет поиск. Когда появляется подходящее объявление, ему приходит push или письмо.

Для расчёта: 15 млн сохранённых поисков, 1,5 млн новых объявлений в день. Хорошие квартиры уходят за день, поэтому уведомление должно прийти в течение 10–15 минут.

Уведомлять каждые 5 минут нельзя: человек отключит push целиком. Ночью с 22:00 до 9:00 по местному времени push не шлём.

В работе: Сохранённый поиск возвращает покупателя к выдаче, когда появляется нужная квартира или б/у велосипед по его цене.

Как проверяем Шаги с вариантами и расчётами проверяем автоматически: число засчитано, если оно в пределах допуска от эталона. Схему вы оцениваете сами по чек-листу. Зачёт — схема набрала 60 % чек-листа и верны 70 % остальных пунктов. Ответ один на подход: после него показываем разбор.
уведомленияобратный поискдедупликациятихие часы

Источник: Авито: формат секции System Design и пример «бэкенд для сервиса нотификаций» (AvitoTech на Хабре); сценарий наш. Условие пересказано своими словами.

  1. Уточнить требования — Что выяснить до схемы?
  2. Оценить нагрузку
  3. Сопоставление — Как находить поиски, которым подходит новое объявление?
  4. Отправка — Как не завалить человека уведомлениями?
  5. Схема — Опишите путь объявления от публикации до сводки на телефоне.