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