Pull Up Your YAML Bootstraps

​ Peter Centgraf

​ 2018-05-15


With the release of version 12, Bloomreach improved the system bootstrapping by introducing YAML as the configuration language, replacing the former XML format. The new YAML is much easier to read, maintain and merge, allowing for easier upgrades and transitioning from, for example, development to production environments.


  • It is a very compact format, much more compact than the former XML format.

  • Sequence numbers are obsolete now, the declaration determines the order. Manual reload-at-startup is not needed anymore.

  • Error detection and reporting are superior to the old situation. Reports point back to the problematic source files directly.

  • Binary files are stored as external resource files with ‘human friendly’ names instead of as inline, encoded XML. Large strings can also be placed in external resource files. This makes it easier to use native tools such as image or code editors with content you plan to import.

  • Auto-export now "catches up" to changes while it was disabled, so you don't accidentally miss important data.

  • Improved support for multi-dev and multi-team workflow, with dependencies declared at module level and flexible division of data into source files.

  • A saved baseline copy of previously-applied config to help with debugging diagnosis.

Explicit separation of config and content with distinct handling for each, e.g. don't reload content in production, don't save large content files in the configuration baseline, support more expressive replace/merge/override operations for config.

For an in-depth overview of what has changed since the release of version 12, make sure to check out the video below.

Adrian Collier, Director of Product Management & Peter Centgraf, Platform Team Lead of Bloomreach Experience discuss Configuration Management and the switch from XML to YAML at Amsterdam's Bloomreach Connect 2017.



Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?