В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.
Как исключить повторную отправку отложенных писем при горизонтальном масштабировании? область: распределённые системы, messaging ключевая проблема: конкуренция при отправке между несколькими инстансами решение 1 —…
Как обновлять захардкоженный список наград без передеплоя приложения? конфигурация через properties — файл входит в состав билда и связан с ним для внесения изменений требуется рестарт/деплой приложения внешний сервис…
Как выполнить «инверсию» зависимости между микросервисами? Сервис A обращается к сервису B напрямую, поэтому между ними возникает жесткая связь — tight coupling Инверсия зависимости достигается за счет асинхронного…
Как обеспечить надёжность вызова внешнего сервиса при высокой нагрузке? Архитектура: асинхронное обращение через очередь сообщений Использовать очередь (RabbitMQ, Kafka) для буферизации запросов Добавить механизм…
область: интеграция, отказоустойчивость, масштабирование ввести ограничение пропускной способности (rate limiting), чтобы контролировать частоту обращений к сервису применить bulkhead pattern для изоляции ресурсов и…
Как обеспечить гарантированную доставку сообщений между микросервисами с помощью паттернов Outbox и Saga? гарантия доставки устраняет риски при асинхронном взаимодействии и сбоях Outbox: сообщение записывается вместе…
Дедупликация событий в Kafka для Exactly-Once без транзакций категория: реализация Exactly-Once без транзакционного механизма главная задача — не допустить повторной обработки дублирующихся сообщений базовый принцип —…
Контекст: обработка сообщений в очередях RabbitMQ с требованием гарантировать однократное выполнение операции Идемпотентность означает, что повторная обработка одного сообщения не меняет итоговый результат Применение…
Горизонтальное масштабирование за счёт добавления новых инстансов сервиса Применение балансировщиков нагрузки (load balancers) Автоматическое масштабирование (auto-scaling), настроенное по метрикам нагрузки…
распределённый кеш: в каждом DC хранятся локальные копии данных операция сброса должна выполняться атомарно и консистентно задействовать междатаценровую систему обмена событиями, например Kafka или Redis Streams после…
проектирование системы на уровне структуры компонентов и их взаимодействия создаёт условия для масштабирования, сопровождения и безопасного внесения изменений ясное распределение ответственности (Separation of…
Как действовать при высокой OLTP-нагрузке на запись и больших объёмах чтения OLTP-система с интенсивной записью и чтением в режиме bulk read Главный приоритет — ускорить операции записи и не допустить их блокировки…