Functional requirements specify what the system should do, including features and behaviors. Other options describe non-functional requirements or design details.
Microservices allow independent deployment and scaling of services, supporting many users and updates without downtime.
Horizontal scaling with stateless servers and message queues distributes load and supports many users efficiently.
Eventual consistency allows temporary inconsistencies to improve availability and performance, unlike strong consistency which requires immediate synchronization.
1 million videos × 500MB = 500 million MB = 500 TB. With 3 copies, total is 500 TB × 3 = 1.5 PB.
