Вопрос на собеседовании · Системный аналитик
Когда выбрать синхронную, а когда асинхронную интеграцию?
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
Синхронный вызов подходит, когда инициатору нужен результат для продолжения текущего сценария и зависимость укладывается в общий timeout. Он проще для понимания, но связывает доступность и задержку систем.
Асинхронная интеграция развязывает участников и сглаживает пики, но добавляет eventual consistency, повторы, порядок, дедупликацию и эксплуатацию брокера. Выбор определяется требованиями сценария, а не модой на Kafka.
01 · Структура ответа
Что важно сказать интервьюеру
Раскройте тезисы, которые относятся именно к этому вопросу, и поясните их на собственном примере:
02 · Пример
Как объяснить на практике
Проверку доступного лимита перед подтверждением заказа делаю синхронно, а письмо и обновление аналитики публикую событиями после фиксации заказа.
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- Что такое eventual consistency?
- Как обрабатывать дубликаты?
- Когда нужен transactional outbox?
05 · Проверка фактов
Первоисточники по теме
Ссылки ниже помогают проверить понятия, методы и ограничения по теме. Они не являются доказательством того, что этот вопрос задают на каждом собеседовании.
- Microsoft: Asynchronous Request-Reply Pattern — Условия и компромиссы асинхронной интеграции.
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с подсказкой.
Mira