Как реализовать поиск отелей и предложений и не умереть Проблемы и приключения
Тимлид бэкенд команды Otello (сервис поиска и бронирования отелей), в разработке более 10 лет, прошел путь от небольших проектов до highload c пиком более 130к rps
Тезисы
Недавно 2ГИС запустил сервис бронирования Отелло. Нам было важно решить проблему наших пользователей максимально быстро, чтобы успеть зацепиться за рынок. Расскажем, как мы реализовали поиск отелей в условиях, когда данные нужно было агрегировать с разных источников по принципиально разным протоколам, а проверенный годами Elasticsearch не мог помочь. Обсудим, что делать, когда партнёры устанавливают ограничения 500 RPM и p99 до 5 секунд, а для отображения первых результатов выдачи требуется минимум 1000 RPM. Также рассмотрим, на какие трудности можно наткнуться при реализации гео-поиска, и как нас почти не погубил один успешный A/B-тест и интеграция с трафиковым партнером. Покажем, что амбициозная цель выполнить всё описанное выше за три недели — посильная задача для команды инженеров, вооруженной Go и ориентированной на результат.
Обсудим проблемы, с которыми столкнулись по пути, архитектурные компромиссы, достигнутые результаты, наши уроки и планы по продвижению проекта вперед.
