There are projects, where you want to create an application,
that is extensible by other parties without access to the sources iteself
or re-compiling the whole binary. This concept is known as modules, plugins or features nowadays.
This might be the case if you are creating a client application (e.g. to implement scripting functionality),
but also if you want to have your server application extensible by third parties.
For a recent project, I had to implement a way to separate data mapping functionality from the basic persistence logic.
So I invested some time in looking into the different options within the Go ecosystem, how one can implement a fitting plugin system.