Whether you're doing DevOps,Machine Learning or Web development, chances are you maintain configuration in the form of heirachical formats such as JSON, YAML, XML..etc
A key design goal for many hierarchical information formats is to strike a good balance between machine readability (parsing) and human readability. Unfotunately no matter how human readable these formats are, they quickly become a challenge to deal with once the structure of the information becomes complex. Editing complex JSON or YAML files is a challenge.
Solvent configuration management features provides a number of features to make managing complex hierarchical information easier.
In addition to the challenge of dealing with complex hierarchical information expressed in the aforementioned formats, there is also the problem with these formats being static. In other words you can only statically specify information in JSON or YAML without a default ability to generate dynamic/programmable values.
New templating languages such as jsonnet,ksonnet,hocon..etc have been developed to handle this challenge with various strengths and weaknesses.
Solvent configuration is based on the construction and execution of an object graph, this gives it incredible power when it comes to templating. Information can come from a full templating language, from a piece of code in any of the languages the Solvent platform supports, from a database or from user supplied parameters.