Functional requirements define what the system does:
- Users can upload videos
- Users can search for content
- Users can follow other users
Non-functional requirements define how well it does it:
- % availability
- latency under ms
- Support million daily active users
- Data must be durable (no loss)
Functional requirements determine your features. Non-functional requirements determine your architecture. A system serving users looks different from one serving million.