Questions in System Design
Design a distributed document database — replication, sharding, and consistency trade-offs. Cover functional/non-functional requirements, capacity estimation, API and data model, scaling strategy, caching, and fault tolerance.