Поиск авиабилетов кажется простым делом: ввел «Москва — Сочи» и через несколько секунд получил десятки вариантов. Но за кулисами работает многоуровневый конвейер обработки данных: каждый пользовательский запрос превращается в десятки обращений к внешним API и тысячи предложений. Кешировать их можно лишь на короткое время.
Источники ассортимента сильно различаются по скорости и качеству: ответы приходят через 2 или 10 секунд, пересекаются, противоречат друг другу и быстро устаревают. Мы выявляем дубликаты, устраняем конфликты, обогащаем информацию, а также строим маршруты с пересадками — задачи, которые раньше выполняли специализированные системы.
Ключевая метрика — time‑to‑first‑offer: пользователи ждут быстрых результатов, даже если не все источники успели ответить.
Со временем старые решения перестают справляться: оптимизации начинают тормозить, а бизнес‑требования заставляют пересмотреть архитектуру.
В докладе я расскажу:
* почему поиск авиабилетов — это не просто бизнес‑логика про тарифы, а настоящий Highload со специфическими метриками качества;
* как мы прошли путь от «это не может работать» до «бизнес в нас поверил»;
* как устроены доменные слои поиска и где внутри системы «взрывается» нагрузка;
* на какие компромиссы и приёмы оптимизации пришлось пойти, где не сработали первоначальные идеи;
* каких целей и показателей в продакшне мы достигли, а каких целей достичь не удалось;
* какие новые вызовы стоят перед системой после пяти лет эксплуатации;
* что вы можете применить у себя.