Questions in System Design
Design a distributed search/indexing engine — sharding, inverted index, and query routing. Cover functional/non-functional requirements, capacity estimation, API and data model, scaling strategy, caching, and fault tolerance.