Чёрная пятница. Маркетинговая команда подготовила рекламную кампанию. Ровно в полночь она хочет отправить уведомления одному миллиону пользователей. Задача кажется простой.
Пока вы не понимаете, что мгновенная отправка миллиона уведомлений может перегрузить серверы приложения, поставщиков уведомлений, базы данных и даже внешние API.
Большинство инженеров сразу скажут:
Используйте Kafka.
Это хорошая отправная точка.
Но что произойдёт, если:
• потребители Kafka не будут успевать обрабатывать сообщения;
• Firebase начнёт ограничивать частоту запросов;
• рабочий процесс завершится с ошибкой посреди обработки;
• уведомления нужно персонализировать;
• следующая кампания будет рассчитана не на миллион, а на 100 миллионов пользователей;
• маркетингу внезапно понадобится отслеживание статусов доставки.
Разберём собеседование по системному проектированию, в ходе которого рассматриваются все эти вопросы.
Статья: https://apptractor.ru/info/articles/system-design-kak-by-vy-otpravili-1-million-uvedomleniy.html
Платформа: архитектура
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
