Non-functional requirements
While functional requirements define what the system should do, non-functional requirements specify how the system should perform and behave. These requirements are critical to ensuring that the Twitter-like service remains scalable, available, and reliable under various conditions. Let’s discuss the key non-functional requirements:
- Scalability:
- The system should be designed to handle a large number of users and tweets, accommodating growth and peak traffic loads
- Horizontal scalability should be achieved by adding more servers and distributing the load across them
- The architecture should allow for easy scaling of individual components, such as Tweet Service or Timeline Service, independently
- Availability:
- The service should be highly available, ensuring minimal downtime and quick recovery from failures
- Redundancy should be implemented at various levels, including server redundancy, database replication, and geo-redundancy
- The system should...