Design a scalable key-value configuration service
Company: Meta
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design a globally distributed key–value configuration service used by thousands of microservices. Define the key schema (namespacing, composability, versioning) and value schema (serialization format, validation, schema evolution). Explain partitioning/sharding strategy, indexing, and storage engine choices (e.g., LSM-tree vs B-tree), including write/read paths and hot-key mitigation. Specify the consistency model (linearizable vs eventual), leader election, replication/quorums, and handling of network partitions and failover. Describe support for transactions, watches/subscribe for updates, TTLs, and backup/restore. Provide capacity planning, SLAs, multi-region replication strategy, and testing approaches.
Quick Answer: Design a scalable key-value configuration service evaluates requirements, scale assumptions, API/data design, architecture, trade-offs, failure modes, and rollout in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.