Интеграция с внешней билетной системой
Асинхронный слой интеграции для данных об аэропортах, маршрутах и доступности
Масштабируемая асинхронная интеграция с внешним API для данных об аэропортах, маршрутах, расписаниях рейсов и доступности мест, построенная на переиспользуемых экстракторах, трансформерах и типизированных схемах.
Технологический стек
Проблема
Продукту требовались актуальные данные о расписании и доступности от внешнего провайдера бронирования, при этом сам upstream API был медленным, непоследовательным по структуре и ненадёжным.
Решение
Построен типизированный интеграционный слой с отдельными этапами извлечения и трансформации, приводящий ответы провайдера к стабильным внутренним схемам независимо от особенностей источника.
Технический вклад
Спроектирована архитектура асинхронного клиента, контракты схем Pydantic между этапами извлечения и трансформации, стратегия повторных попыток и обработки ошибок upstream-сервиса.
Архитектура
Асинхронные httpx-клиенты передают данные в пайплайн экстракторов и трансформеров, модели Pydantic обеспечивают типизированные контракты на каждом этапе перед передачей данных в приложение.
Производительность
Параллельные асинхронные запросы и пул соединений сокращают итоговое время получения данных для запросов по нескольким маршрутам по сравнению с последовательными вызовами.
Безопасность
Учётные данные upstream-провайдера изолированы в интеграционном сервисе, строгие тайм-ауты и circuit breaking предотвращают каскадные сбои.
Модель развёртывания
Работает как контейнеризированный сервис с независимым масштабированием от основного приложения, развёрнут через Docker.
Результат
Надёжные, нормализованные данные о рейсах и доступности, доставляемые в нижестоящие сервисы, с устойчивой обработкой нестабильности upstream-провайдера.