Что такое синхронные и асинхронные запросы
Что проверяют
Умеете ли вы описать интеграцию так, чтобы её можно было реализовать и проверить. Для аналитика вопрос не про код: за выбором между синхронным и асинхронным обменом стоят требования к времени ответа, к гарантиям доставки и к тому, что видит пользователь, пока обработка идёт.
Как отвечать
Синхронный запрос: клиент отправил и ждёт ответ в том же соединении, результат приходит сразу. Асинхронный: система принимает запрос, отвечает, что он принят, и возвращает результат позже отдельным сообщением.
Механик у второго варианта три, их стоит назвать: ответ с идентификатором плюс опрос статуса, обратный вызов на адрес клиента, очередь сообщений между системами.
Дальше критерии выбора.
Синхронно, когда ответ нужен для следующего шага сценария, обработка укладывается в секунды и вызывающая сторона готова получить ошибку сразу. Например, проверка данных перед сохранением формы.
Асинхронно, когда обработка долгая, зависит от внешней системы или должна пережить её недоступность. Например, формирование документа или обмен с внешним реестром.
В постановке на асинхронный обмен обязательно описываются: таймаут и число повторов, ключ идемпотентности против дублей, где хранится статус и как его посмотреть, что видит пользователь во время ожидания, куда уходит сообщение после исчерпания попыток.
Где спотыкаются
Называют асинхронность просто более быстрой. Быстрее становится ответ вызывающей стороне, а общее время обработки обычно растёт. Выигрыш в устойчивости и в сглаживании нагрузки, так и надо формулировать.
Описывают счастливый путь и молчат про отказ. Ответ не пришёл в срок, сообщение доставлено дважды, внешняя система ответила ошибкой: без этих сценариев постановка недописана, и разработчик додумает их сам.
Путают асинхронный обмен с индикатором загрузки в интерфейсе. Крутилка поверх обычного синхронного запроса не даёт ни одной гарантии доставки, но в тексте требований выглядит похоже, и разница вскрывается только на приёмке.