feature: plugins
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
- Docs follow-up: docs#236 (closed), docs#237, docs#238 (closed), docs#239 (closed)
Edited by Yaroslav Dynnikov