System Design Prompt
Design a global-scale metadata service used by many internal products.
Goals / Requirements
-
Writes must be strictly consistent
(treat as
linearizable
writes; no conflicting updates).
-
Reads must be low latency
for clients across multiple regions.
-
Global deployment (multi-region). Assume high QPS and large metadata cardinality.
What to cover
-
Data model and API surface (e.g.,
Get/Put/List/Watch
, versioning).
-
Replication and consistency approach; explicitly justify
why not eventual consistency
.
-
How you handle
network partitions
and
region-level outages
.
-
Degradation strategy
under failures (what continues to work, what becomes read-only, etc.).
-
A
rollback / recovery
approach for bad writes (operator error, buggy deployment).
Constraints (you may assume)
-
Metadata items are typically small (KBs), but the keyspace is large.
-
Clients are latency-sensitive on reads; writes are less frequent but correctness-critical.
-
You may partition by tenant and/or key.