Design a high-level storage system for digital assets. The system must store and serve multiple asset types, including text documents, images, and videos.
Focus on a high-level block diagram and the end-to-end flow. You do not need to provide detailed API definitions or a full database schema.
Your design should cover:
-
How clients upload assets.
-
Where raw assets are stored.
-
How metadata is stored and queried.
-
How images and videos may be processed after upload.
-
How assets are served back to users efficiently.
-
Which major components are needed and how they interact.
After presenting the diagram, choose three components and explain:
-
What the component does.
-
What technology or type of system you would use for it.
-
Its limitations.
-
Its pros and cons.