Skip to content

feature: plugins

Konstantin D requested to merge derevtsov/plugin into master

Google Docs — RFC — Plugins

Summary

  • feature: plugins.

Introduce a plugin system for picodata cluster. Plugin system contains:

  • picoplugin crate with plugin interfaces. This crate exposes plugin interfaces for user implementation and API that used by picodata to interact with plugin as with a code from dynamic library.
  • Support for plugin work cycle in picodata instance work cycle. Picodata instance interacts with running plugin by PluginManager component. Typically, plugins react to events that occur in instance or whole cluster.
  • New lua API with plugin CRUD actions.
    • pico.create_plugin - load a new plugin into picodata cluster
    • pico.remove_plugin - remove plugin from picodata cluster
    • pico.update_plugin_config - update plugin service configuration

Plugin life cycle diagrams can be found here: https://docs.google.com/document/d/1QMFXWhrSJ9VLFNX-jayHCzG8jk01VwtOuTOzooBBsOA/edit#heading=h.i0z7fgvh5e96


This PR not includes:

  • plugin topology
  • picodata sdk
  • special grants for plugins
  • plugin initial ddl
  • extensions

Edited by Yaroslav Dynnikov

Merge request reports