seashell / drago

☁️ Securely connect anything with WireGuard® and manage all your networks from a single place.

Home Page:https://seashell.github.io/drago

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Integrate plugin system for non-essential functionality

edufschmidt opened this issue · comments

In order to keep the Drago core functionality as lean as possible, it would be interesting to integrate a plugin system so that the leasing service (and future non-core features) can be implemented as a plugin. The go-plugin package by Hashicorp seems to be a good candidate due to the very loose coupling between the host and the plugin, and simple build process.

One idea is to have Drago trigger functions/hooks, defined in an interface implemented by each plugin, on specific situations (resource created, resource deleted, etc), and to which plugins can respond.

See #43 for plugin ideas.