We're proud to announce that Colony Framework now supports Modular Configuration.
What this means is that you can now load and unload configurations, in runtime, in the same you way could already load and unload Colony plugins. Colony configurations do to data, what Colony plugins already did to logic: they remove the need for restarts, promote modularity and make distribution transparent.
For instance, you could fire up a Colony instance, throw in a CPX file containing the HTTP server plugin and then throw in a CCX file (Colony Configuration file) which would set your HTTP server to act as a proxy. You could then pop in a new CCX file which would completely reconfigure you server to act as a simple file system navigator. All of this without ever having to stop your instance or even reload your HTTP server plugin. Pretty cool, huh?
For a long time now, the configuration facilities in Colony were seriously underdeveloped compared to the other parts of the technology. We had been wanting to fix this almost straight after the configuration infrastructure was set in place.
Until now, like with every other system in the world, changing the core configuration options of any component would require restarting the instance. This can be fine for a lot of people, but when you support loading and unloading components in runtime, having to reload because of a settings change always seemed a bit awkward.
Modular configuration also comes with a high content of distributed AWESOME. Think about Colony Distributed, and how easy it now will be to deploy work units to remote plugins. We could already ship plugins to distributed instances, now we can ship them with precise indications on how the host instance should use the plugins: the configuration file. Try that on a regular distribution framework!
This is really a huge milestone for colony. I'm really happy we've finished this one :).