Earlier quoted context omitted.
Go Micro is a framework/library as opposed to a binary or server. You import the framework in code and it gives you the ability to add additional plugins via new imports. These can then be swapped out via environment variables or flags. We make use of Go interfaces to define the abstractions so all you have to do is create a plugin that implements the interface and that effectively makes it pluggable. Here's the comm…
What exactly does it mean to say that plugins "can then be swapped out"? I assume a binary Go plugin can not in fact be unloaded from memory. So modifying and reloading a Go plugin will result in multiple versions of it to then stay in memory. This is a shortcoming of the current Go implementation. Is my understanding correct?
I'm pretty sure go micro's plugins are just additional packages each for its purpose ready to be imported and used in your project.
Basically a collection of community maintained packages for the most common utils\middleware\MQ clients etc