От WASM-рантайма к компонентной модели: как мы строим платформу расширений Tarantool

Базы данных и системы хранения

Бэкенд / другое
Tarantool
Lua
Расширение кругозора

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

Архитекторы слоя данных, разработчики СУБД.

Тезисы

WASM Component Model – это современный стандарт модульности и межъязыкового взаимодействия, который позволяет безопасно и эффективно исполнять код на любом языке (Python, Go, Rust, C и др.) как изолированные компоненты прямо внутри Вашей платформы.

Ключевым элементом архитектуры выступают WIT-интерфейсы (WebAssembly Interface Types). С их помощью можно декларативно описать API, реализовать его один раз на нужном языке и автоматически получить типобезопасный, прямой доступ к функциям, для API Tarantool например, box.space, index, sequence, error и др. из всех языков, поддерживающих компонентную модель — без необходимости писать FFI-обёртки или коннекторы вручную.

Каждый WASM-компонент может экспортировать свои функции, которые доступны для вызова из вне, для Tarantool мы научились вызывать их напрямую из Lua с помощью разработанной библиотеки. Это позволяет писать расширяемые плагины и бизнес-логику на любом удобном языке, интегрируя её в Tarantool наравне с Lua-кодом. Например, вместо сложной реализации gRPC-клиента на Lua, можно быстро написать WASM-компонент на Python или Rust и загрузить его в Tarantool без лишних зависимостей.

Таким образом, Tarantool превращается в модульную платформу с поддержкой компонентной модели, способную безопасно интегрировать и переиспользовать код на разных языках, облегчать масштабирование и ускорять разработку в системах с высокими нагрузками.

Максим Тюшев

VK, VK Tech, Tarantool

Занимается развитием поддержки WebAssembly (WASM) в Tarantool и созданием SDK для создания и встраивания WASM модулей на различных языках. Интересуется архитектурой распределённых и мультиагентных систем, имитационным моделированием, графовыми базами данных и методами маршрутизации в сетях специального назначения.

Видео