We have a number of plugin applications that can all run independently but also can run within the same host container. Users can run one single host container or multiple ones with one or many plugins.
We have a number of "integration" use cases where people want to either
- Send data from one plugin to another
- Send "actions" or "commands" to another app (sometimes with parameters)
We have a couple of options:
Have a well known event bus at the container level that all plugins know about and can publish and subscribe well defined messages or objects
Embed the dlls of one into another and call the API of one plugin from another
create integration plugins that know about the common integration points so each individual plugin is completely standalone and the integration plugin is the only thing that knows about the integration. This was we can ship each individual plugin without any extraneous dependencies.
Thoughts or other suggestions?