В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.
Защитите основной пользовательский путь: буферизуйте аналитику, ограничьте приём и масштабируйте обработку по измеренному узкому месту. Очередь лишь откладывает проблему, если backlog растёт бесконечно.
Для чувствительных медицинских данных нужны минимальные права, строгая изоляция, шифрование, аудит доступа и контроль целостности. Архитектура должна исходить из модели угроз.
В Saga используют оркестрацию с координатором или хореографию через события. Выбор объясняют сложностью процесса, наблюдаемостью и автономностью сервисов.
Алгоритм короткой ссылки выбирают по уникальности, длине, предсказуемости и способу генерации. Обычно сравнивают кодирование ID и случайный токен с проверкой коллизий.
Сначала исключите недоступные и заполненные workers, затем сравните нагрузку и атомарно зарезервируйте слот. Раздельные чтение счётчика и увеличение создают гонку.
Основные варианты — range, hash и распределение по каталогу. Менее болезненная схема учитывает горячие ключи, миграции и маршрутизацию с самого начала.
Синхронные запросы обычно передают по HTTP/gRPC, а события и отложенные задачи — через брокер. Выбор зависит от необходимости немедленного ответа и связи жизненных циклов.
Разделите Git-операции, метаданные продукта и фоновые задачи. Для 50 000 пользователей сначала уточните активность, размер репозиториев и требования к доступности.
DDD-разделение начинается с бизнес-процессов, языка и ответственности, а не с нарезки кода по технологиям. Границы проверяют на реальных изменениях и зависимостях.