Apache Ignite – распределённая система обработки данных, ориентированная на высокопроизводительные вычисления в оперативной памяти.
Система реализована на Java, поэтому для обработки данных используются прежде всего языки, реализованные в JVM. Но для использования Ignite в областях, где доминирует Python (CV, NLP, LLM), необходимо было создать клиентскую библиотеку на Python.
Я реализовал сетевое взаимодействие с кластером Ignite на socket, а трансляцию бинарных данных – на ctypes. Также пришлось перевести многие алгоритмы (вычисление хеш-кодов, выбор ноды, регистрация сложных типов данных и др.) с Java на Python.
Находясь в контакте с разработчиками и пользователями Ignite, я довёл тонкий клиент от концепции до первой продакшен-версии, с набором тестов на pytest и документацией на Sphinx.
Международное сообщество Apache