We saw that configuration exists in the but actually belongs in organized and well-described YAML files. In order for the configuration from the YAML files to be used, they need to be imported—either via synchronization or upon module installation for those provided by modules. So, this means that the database still holds the active configuration.
To make things more dynamic, the configuration API also provides an override system by which we can, at various levels, override the active configuration on the fly. In Drupal 7 that was done via the global $conf variable, but that was also a way to, unfortunately, leak the overrides into the actual configuration pool. This is no longer the case in Drupal 8, and we also have three different layers at which we can override configuration (global, module and language overrides).
The configuration API then takes into account these overrides in a way that prevents leaking them by accident into the active configuration. We will see examples when we talk about how to interact with the configuration API in general.