Архитектурная задача: система отложенных нотификаций для бонусов (десятки миллионов пользователей)

Храните уведомление как устойчивое задание с временем отправки, статусом и уникальным ID. Планировщики выбирают наступившие задания порциями, а очередь и workers выполняют доставку.

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

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

Храните уведомление как устойчивое задание с временем отправки, статусом и уникальным ID. Планировщики выбирают наступившие задания порциями, а очередь и workers выполняют доставку.

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

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

Храните уведомление как устойчивое задание с временем отправки, статусом и уникальным ID. Планировщики выбирают наступившие задания порциями, а очередь и workers выполняют доставку.

Разделите планирование по временным окнам/шардам, добавьте lease и повтор после сбоя. Перед отправкой проверяйте актуальность бонуса, согласия и отмену. Ограничивайте скорость по каналу и провайдеру, учитывайте часовой пояс. Для десятков миллионов пользователей нужны расчёт пиков, retention и метрики задержки; один Redis ZSET без восстановления не является всей архитектурой.

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

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

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

Подробнее