Архитектура бэкенда
Жизненный цикл запроса: тест с выбором ответа
Шесть вопросов поперёк всех семи остановок. Каждый отражает реальный инцидент — не стадию для называния, а симптом, который надо локализовать до одной остановки, плюс механизм, объясняющий его.
Убедись, что по симптому прыгаешь к нужной остановке: связываешь лимиты accept-очереди, порядок middleware, стоимость сериализации, backpressure и амплификацию хвоста в один рефлекс принятия решения.
Под всплеском трафика клиенты получают connection timeout и reset, но логи приложения полностью пусты — ни 500, ни трейсов обработчика. Какая остановка и почему логи пусты?
Security-ревью находит, что один admin-эндпоинт обслуживает неаутентифицированные запросы, хотя auth-middleware реализован, протестирован и зарегистрирован. Наиболее вероятная причина?
Эндпоинт стал на 40% медленнее после роста результата с 50 до 5000 строк, но время запроса к БД не изменилось — те же 8 мс. Куда ушло время и какой первый фикс?
Стриминговый экспорт даёт OOM только когда клиент скачивает по медленному каналу. Код вызывает res.write() в цикле и игнорирует возвращаемое значение. Каков точный механизм?
Страница продукта делает fan-out на 100 независимых сервисов параллельно и ждёт всех. У каждого p99 = 10 мс (1% шанс, что вызов превысит). Примерно какая доля загрузок страницы превышает 10 мс хотя бы на одном вызове и какой устойчивый фикс?
У запроса SLA 1 с. Сервис A (client timeout 1 с) вызывает сервис B (client timeout 1 с). Когда B зависает, A продолжает работать всю секунду после того, как клиент уже сдался. Почему и что это чинит?
Сквозная линия юнита — один рефлекс: по симптому прыгай к остановке, которой он принадлежит. Пустые логи под всплеском — accept-очередь (somaxconn) отбросила соединения до запуска кода; неаутентифицированный эндпоинт — порядок middleware, а не логика auth; замедление, отслеживающее размер payload — сериализация; OOM под медленными клиентами — проигнорированный backpressure; медленная страница при здоровых сервисах — амплификация хвоста при fan-out, чинится пробрасываемыми deadline и hedging. Задержка — сумма по всем семи остановкам плюс очереди, поэтому карта превращает слепую отладку в один прыжок.