The problem
Hundreds of services need shared settings: feature flags, connection strings, limits. Hardcoding them means a redeploy for every change, and inconsistent copies cause subtle bugs. A configuration service centralizes this.
How it works
- Config lives in a consistent store like etcd or ZooKeeper.
- Clients watch keys and get notified when a value changes.
- A change is written once and propagates to every watcher quickly.
Safety properties
- Versioning: every change has a version so clients know they are current and rollbacks are easy.
- Validation: bad config is rejected before it reaches the fleet.
- Staged rollout: push to a few nodes first, watch metrics, then widen.
Key idea
A distributed config service is a consistent, watchable store of settings, letting one validated change propagate to the whole fleet without redeploys.