Разделите кампанию, получателей и попытки отправки. Загрузка и проверка номеров предшествуют планированию, а очередь воркеров отправляет сообщения с учётом лимитов провайдера и срока действия.
Как бы ты подошел к проектированию сервиса SMS-рассылки (загрузка номеров, текст, запуск сейчас или по расписанию, срок действия)?
Разделите кампанию, получателей и попытки отправки. Загрузка и проверка номеров предшествуют планированию, а очередь воркеров отправляет сообщения с учётом лимитов провайдера и срока действия.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Разделите кампанию, получателей и попытки отправки. Загрузка и проверка номеров предшествуют планированию, а очередь воркеров отправляет сообщения с учётом лимитов провайдера и срока действия.
У кампании нужны текст, автор, расписание с часовым поясом, дедлайн и статусы. Номера нормализуют и дедуплицируют, отдельно проверяя согласие и запрет рассылки. Планировщик атомарно переводит готовую кампанию в обработку; отправка идемпотентна и прекращается после отмены или истечения срока. Хранят идентификаторы провайдера и результаты доставки, различая принятие и доставку. Предусмотрите ограниченные ретраи, контроль стоимости по SMS-сегментам, аудит и безопасное удаление персональных данных.