Каждому запросу присваивают уникальный correlation ID и передают его через обработку до ответа. Клиент сопоставляет результаты по идентификатору, а не по порядку получения.
Как связать входные сообщения/запросы с выходными ответами, если обработка идёт асинхронно и ответы могут прийти в другом порядке?
Каждому запросу присваивают уникальный correlation ID и передают его через обработку до ответа. Клиент сопоставляет результаты по идентификатору, а не по порядку получения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Каждому запросу присваивают уникальный correlation ID и передают его через обработку до ответа. Клиент сопоставляет результаты по идентификатору, а не по порядку получения.
Ожидающие операции хранят в отображении id → контекст ожидания, удаляя запись после завершения или таймаута. Повторные и запоздавшие ответы обрабатывают явно. Correlation ID связывает сообщения, а idempotency key предотвращает повторный бизнес-эффект — эти роли не обязательно совпадают. Для брокера дополнительно согласуют канал ответа, подтверждения и сохранность состояния при перезапуске. Идентификатор сам по себе не гарантирует доставку.