Плагины в o2-midway. Создание гибкого пайплайна обработки фичей в поисковом движке
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
Современные поисковые системы требуют от разработчиков успевать поддерживать как базовую функциональности и производительность, так и постоянно изменяющуюся и развивающуюся функциональность более "умных" фичей внутри. Зачастую, такие фичи создают соседние команды ad-hoc, и с развитием кодовой базы добавление каждой из них превращается в отдельную боль для всех, в особенности с точки зрения оптимизаций и поддержки кода.
Мы расскажем, как последняя такая капля убедила нас разработать универсальный механизм плагинов, позволяющий решить эту проблему. В сервисе o2-midway — среднем слое поисковго движка Ozon — мы смогли перейти от ручного встраивания "куда удобно" фичей другими разработчиками к унифицированному механизму дополнений, полезному не только для развития кодовой базы, но и для автоматического выполнения оптимизаций, тяжелоосуществимых в ручном режиме.
В докладе поговорим о сравнении старого и нового подходов, о применении практик асинхронного программирования в них, о сложностях реализации и путях борьбы с комбинаторным взрывом при разработке fluent API, и, наконец, о возможных улучшениях этой системы, таких как условная вычислимость.
Старший разработчик поисковой платформы Ozon, занимается созданием новых технических фич в движке, тулингом для коллег по команде. Состоит в Java-комитете компании. Автор анализатора поискового индекса, продвинутого парсера запросов, быстрого хранилища полей в поисковом индексе.
Основные языки: Java, Rust.
Фанат опенсорса, контрибьютил в ряд проектов, включая Lucene и OpenJDK. Топит за строгую типизацию и максимальную статическую верифицируемость кода.
В свободное время занимается проектами, среди которых биндинги для Flipper Zero и альтернативная модульная реализация игрового сервера.
Ранее работал в геймдеве, занимался созданием игровых серверов и инфраструктуры вокруг них.
Видео
Другие доклады секции
Базы данных и системы хранения