I'm looking for an equivalent of Architect for the Go language.
With Architect, modules expose "plugins". Plugins can specify dependencies, and export an API to allow interaction with other plugins. To start an application instance, you specify a list of plugins. Dependencies are resolved, and plugins are loaded (instantiated) in order.
Since each application creates a single instance of each plugin, multiple applications can be started in the same process without colliding.
Edit: I don't need the other modules to be loaded dynamically.