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: This question evaluates expertise in distributed systems and system design, testing competencies in schema and API design, partitioning/sharding, storage engine trade-offs, consistency and replication strategies, and operational features like watches, TTLs, backups, and capacity planning within a multi-region key–value configuration service.