Configuration
Convention over configuration is required due to the sheer amount of configuration we have.
Feature-system
Our services use the so-called "feature-system" to handle configuration. Each individual feature can have configuration files associated with it.
Provide "Sensible defaults" for these configuration files wherever possible:
- Can the feature (possibly) work (at least in a basic, useful sense) without configuration? Provide defaults that make this the case.
- Does the feature require configuration for even the most basic useful use-case? Have the feature be disabled by default.
At no point should a service not work (e.g. fail to start) because a user did not configure a feature that they don't even use in the first place.
