Questions in System Design
Design a cloud content-management/file-storage service with sharing, versioning, and permissions. Cover functional/non-functional requirements, capacity estimation, API and data model, scaling strategy, caching, and fault tolerance.