Conductor is a module, which helps you to configure and to control the behavior of your app as a centralized service.
In the Conductor-module you’re able to specify so called “configuration-sets”, where you can define key-value pairs which are used for the configuration. This key-value-items can either be a string, a numeric, datetime or a boolean value.
This configutation-sets can be defined for every hierarchical level.
Every item in a configuration-set will be overwritten or appended by the configuration-set in following order.
Application > Application-Version > Device > Installation
This means, if you have an setting with the key “isFeatureXActive” in your application defined with the value “false” but nowhere else, the clients will receive the value “false”. In the case you have a configuration-set for a individual device, where there is also a setting with the key “isFeatureXActive” with the value “true”. This specific device will get it’s individual configuration with the key “isFeatureXActive” and the value “true”.
Every client (endpoint) which is using Congether requests their individual configuration. This configuration will be composed, as described above.
But what can you do now with this mechanism? You can simply change the behavior of your application while it is in the production-environment. And not just by the application at large, but also for each specific version, device and down to every each installation.
Some use-cases to use this scenarios:
- Switch to other databases/endpoints
Simply set the new database-connection. At the next restart or request of the configuration, the endpoints will receive the new database-connection.
- Activate or deactivate specific features
Do you want to test some kind of features for a limited range of users? Simply activate or deactivate features by a setting for individual devices or installations
- Change the logging-level for one device
Having sporadic issues on only one device? If you have different logging-level prepared in your application, you can simply set the logging-level for the respective device to find the errors without having to deploy a new version of your application.
- Change the behavior of your application
Use Conductor for example in games to set difficult-levels dynamically. Set specific threshold-settings for notify your users at given events.
- … the possibilities are endless