В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.
Сохраняйте получателей в долговечной очереди и ограничивайте общий темп до 100 SMS/с по правилам провайдера. Минимальное время для 2 миллионов отдельных SMS — 5 часов 33 минуты 20 секунд.
При недоступном шлюзе сохраняйте платёж как принятую к обработке операцию и возвращайте её статус, а не ложный успех. Надёжность строится на идемпотентности, очереди и сверке результата.
Для переводов нужны API, проверка прав и лимитов, неизменяемый учёт проводок, оркестрация операции и интеграция с внешним провайдером. Ключевые свойства — отсутствие двойного списания и восстановимость.
Заказ и событие для отправки счёта сохраняют одной транзакцией, а письмо отправляет фоновый обработчик outbox. Повторное создание заказа блокируют ключом идемпотентности и уникальным ограничением.
Три типичных преимущества брокера — ослабление временной связанности сервисов, сглаживание пиков через буфер и независимая обработка сообщений потребителями. Эти преимущества зависят от настройки и выбранной модели.
Обосновывайте запас измеренной текущей нагрузкой, прогнозом и стоимостью изменения архитектуры. Сначала определите целевые пределы и узкие места, а не внедряйте сложность ради неопределённого будущего.
Да, поверх Kafka можно построить request-response с correlation ID и каналом ответов. Это прикладной протокол: подтверждение записи сообщения брокером не равно подтверждению бизнес-обработки.
Для смены тарифа клиент отправляет запрос, backend проверяет пользователя и допустимость перехода, фиксирует операцию и обновляет доступ после подтверждённого бизнес-события. Детали зависят от оплаты и архитектуры.
Kafka сама не возвращает бизнес-результат исходному HTTP-клиенту. Обычно API выдаёт идентификатор операции, а клиент узнаёт итог через polling, WebSocket, SSE или согласованный callback.
Разделите сценарии, объекты страниц, фикстуры окружения и тестовые данные. Pytest организует запуск и зависимости, Selenium выполняет действия в браузере; отчёты помогают разбирать падения.
Видеоредактор добавляет временную шкалу, синхронизацию аудио и видео, большие объёмы данных и длительный рендер. Понадобятся потоковая обработка, preview/proxy и управление фоновыми задачами.
Узкими местами могут стать сеть, диски брокеров, репликация, память клиентов, медленная обработка и неравномерность партиций; важны также лимиты сообщений и восстановление после сбоя.