Scenario
Design a service that stores JSON files/documents and exposes a RESTful API for clients.
Requirements
-
Clients can
upload
,
download
,
list
, and
delete
JSON files.
-
Each file has metadata:
owner/tenant
,
fileId
,
createdAt
,
updatedAt
,
size
, and optional tags.
-
Handle concurrency (simultaneous updates) and provide a way to avoid lost updates.
-
Include authentication/authorization.
-
Scale to many files and large aggregate storage.
Nice-to-haves (state your assumptions)
-
Versioning (keep old versions)
-
Partial updates (PATCH)
-
Search by metadata/tags
-
Rate limiting and quotas
-
Large file handling (multipart upload)