feature: plugins
Google Docs — RFC — Plugins
Summary
- feature: plugins.
Introduce a plugin system for picodata cluster. Plugin system contains:
-
picoplugincrate 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
PluginManagercomponent. 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 (closed), docs#238 (closed), docs#239 (closed)
Edited by Yaroslav Dynnikov