Multiple Cosmos-Sdk Apps (possibly dynamically loaded) in a single server?

Hi, I’m wondering if there are plans to support multiple Cosmos-Sdk applications in the same server (e.g. basecoind and emitd apps could both exist in some “multiappd”), and also support for runtime loading of apps (plugin mechanism) to avoid the need to re-deploy the server binary across a network when adding a new app.

Thanks.

There are no plans to do this prelaunch. Its an interesting idea that could be investigated closer to when we start working on IBC. (Which will be soon after launch)

I think it may make more sense to allow dynamicly adding more binaries to it though, as you don’t want to know all the apps you eventually may use at install time. e.g. “multiappd add new_app_name path_to_new_app_binary”

Thanks. I guess I was thinking about both things: 1) ability to host multiple apps in a server then 2) ability to do that with late/runtime binding (which I called dynamically loaded above) so you don’t need to build a new binary for every added app. My use case probably only requires a fixed set of 3-5 applications so I can live without #2 (but it would be nice to have for sure).

There is support for dynamic loading available in Golang but unfortunately at this point only available for amd64 platform, so-called ‘plugins’. I have seen a project that digs out some of the ‘internal’ parts and allows more flexibility, I think the functionality appeared or started to be implemented in go 1.9

I responded to another post on a related subject, that of ‘on-chain application updates’, where I propose building a github like CVS that keeps authenticity data that must match up with IPFS stored data and the potential for reputation ledgers and voting systems - for automating or distributing decisionmaking more automatically without requiring humans to directly action this, only to make a review, vote and/or comment. It also has interesting implications for project governance if such a partially automated system of quorum and vote counting were created, maybe going some way to resolving the leadership/developer … conflicts, to put it maybe a little bluntly.