Ответ вслух Senior Push-уведомления обновлено

Надёжность уведомлений: что делать, если push не доходит

Вопрос

Пользователи жалуются, что не приходят уведомления о новых сообщениях. Как будете разбираться и что изменить в архитектуре?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Сначала разбиваю путь на этапы и меряю каждый: сервер отправил, APNs или FCM принял, устройство получило (событие из расширения или обработчика), уведомление показано и открыто. Это сразу показывает, где теряем.

Что должно прозвучать в ответе

  • Разделить этапы: сервер отправил, провайдер принял, устройство получило, показано

  • Проверить токены, окружение (sandbox/prod), разрешение и настройки категорий

  • Учесть энергосбережение и производителей Android, отсутствие GMS

  • Не строить логику на гарантии доставки: синхронизация при открытии

  • Резервные провайдеры и метрики по каждому этапу

Что могут спросить следом

  • Как тестировать push на CI?
  • Почему тихие push нельзя использовать как основной канал?

Разбор

Сначала разбиваю путь на этапы и меряю каждый: сервер отправил, APNs или FCM принял, устройство получило (событие из расширения или обработчика), уведомление показано и открыто. Это сразу показывает, где теряем. Типичные причины: устаревшие токены, сборка с sandbox-окружением на проде, пользователь отключил разрешение или категорию, на Android агрессивное энергосбережение у некоторых производителей или устройства без сервисов Google. Архитектурный вывод: push это сигнал, а не транспорт данных. Сообщения всё равно синхронизируются при открытии приложения и через постоянное соединение, пока оно активно. Для Android добавляю резервные провайдеры через абстракцию, а метрики доставки вывожу на дашборд по платформам и версиям.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.