Пройдите шаги: уточните требования, оцените нагрузку, выберите решения, нарисуйте схему.
Человек ищет «двушка, Казань, Ново-Савиновский район, до 6 млн ₽» и сохраняет поиск. Когда появляется подходящее объявление, ему приходит push или письмо.
Для расчёта: 15 млн сохранённых поисков, 1,5 млн новых объявлений в день. Хорошие квартиры уходят за день, поэтому уведомление должно прийти в течение 10–15 минут.
Уведомлять каждые 5 минут нельзя: человек отключит push целиком. Ночью с 22:00 до 9:00 по местному времени push не шлём.
В работе: Сохранённый поиск возвращает покупателя к выдаче, когда появляется нужная квартира или б/у велосипед по его цене.
Источник: Авито: формат секции System Design и пример «бэкенд для сервиса нотификаций» (AvitoTech на Хабре); сценарий наш. Условие пересказано своими словами.
- Уточнить требования — Что выяснить до схемы?
- Оценить нагрузку
- Сопоставление — Как находить поиски, которым подходит новое объявление?
- Отправка — Как не завалить человека уведомлениями?
- Схема — Опишите путь объявления от публикации до сводки на телефоне.