| Users / Services | Config Changes Frequency | Deployment Impact | Management Complexity | Risk of Downtime |
|---|---|---|---|---|
| 100 users / 5 services | Low (few changes) | Manual restarts | Simple, local files | Low |
| 10,000 users / 50 services | Moderate (regular updates) | Automated reloads needed | Centralized config store | Medium |
| 1,000,000 users / 200+ services | High (frequent changes) | Dynamic reload, no restarts | Distributed config management | Low with proper rollout |
| 100,000,000 users / 1000+ services | Very high (continuous delivery) | Real-time config streaming | Highly scalable config infra | Minimal with canary and rollback |
Why externalized config enables flexibility in Microservices - Scalability Evidence
As the number of microservices and users grows, the first bottleneck is the configuration management system itself. Without externalized config, each service stores config locally, making updates slow and error-prone.
When config is externalized but the config server or store cannot handle high read/write loads or frequent updates, it becomes a bottleneck. This causes delays in config propagation and risks inconsistent service behavior.
- Centralized Config Store: Use a dedicated config server (e.g., Consul, etcd, Spring Cloud Config) to serve configs to all services.
- Caching: Services cache configs locally with TTL to reduce load on config server.
- Dynamic Reload: Implement hot reload of configs without restarting services.
- Sharding Config Data: Partition config data by service groups to reduce load.
- High Availability: Deploy config servers in clusters with failover.
- Versioning and Rollbacks: Manage config versions to safely roll back if needed.
- Security: Encrypt sensitive config data and control access.
- Requests per second: For 1000 services polling config every minute, ~16.7 requests/sec to config server.
- Storage: Config data is small (KBs per service), total storage in MBs even at large scale.
- Bandwidth: Minimal, as config data is small and cached.
- CPU/Memory: Config server must handle bursts during config updates and reloads.
Start by explaining what externalized config means and why it matters.
Discuss how scaling user base and services increases config management complexity.
Identify the bottleneck: config server load and update propagation.
Propose solutions: caching, clustering, dynamic reload, sharding.
Conclude with trade-offs and how these solutions improve flexibility and uptime.
Your config server handles 1000 QPS. Traffic and services grow 10x. What do you do first?
Answer: Implement caching on services and deploy config server cluster to distribute load and ensure availability.