Куда отправляется ордер после формирования с клиентского приложения?
Что проверяют
Представляете ли вы путь данных за пределами экрана и можете ли назвать, где на каждом шаге что-то проверить. Ордер обычно подразумевает брокерское или торговое приложение, поэтому стоит уточнить домен. Следом спрашивают: как убедиться, что ордер дошёл, и что будет при повторном нажатии кнопки.
Как отвечать
Опишите путь по шагам и к каждому добавьте, чем вы его проверяете:
- клиент: приложение собирает ордер (инструмент, сторона, объём, цена, тип) и отправляет запрос по HTTPS в REST API или по WebSocket. Смотрите в DevTools, Charles или Proxyman: какой эндпоинт, тело, заголовки, есть ли ключ идемпотентности;
- шлюз API: проверка токена, лимиты частоты, маршрутизация в нужный сервис. Ошибки здесь дают коды 401, 403, 429;
- сервис ордеров: валидация полей, проверка баланса и рисков, сохранение в базу со статусом вроде
NEWи уникальным идентификатором. Проверяется запросом в базу и по логам в Kibana или Grafana Loki; - очередь или шина: сервис публикует событие в Kafka или RabbitMQ. Дальше его забирает торговое ядро (matching engine), а в магазине склад, оплата и уведомления. Сообщение в топике можно посмотреть через Kafka UI или
kcat; - обратный путь: статус (
PARTIALLY_FILLED,FILLED,REJECTED) приходит на клиент пушем или по WebSocket.
Главная мысль: ответ 200 или 201 на отправку означает, что ордер принят, а не исполнен. Исполнение асинхронно, и тестировать нужно обе части.
Если архитектуру продукта вы не знаете, так и скажите, а затем предложите, как бы её выяснили: схема от архитектора, трассировка по trace_id, логи сервисов.
Где спотыкаются
Отвечают «отправляется на сервер» и останавливаются. Интервьюер ждёт цепочку компонентов и понимание, где искать ордер, если он потерялся.
Не думают про идемпотентность. Двойной тап или повтор запроса при плохой сети создаёт два ордера, и это один из самых дорогих багов в финтехе.
Путают принятие ордера с исполнением и считают тест пройденным по первому ответу сервера, не дождавшись финального статуса.