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.