Scalability in System Design
Scalability refers to the ability of the System to cope with the increasing load. While designing the system you should keep in mind the load experienced by it. It’s said that if you have to design a system for load X then you should plan to design it for 10X and Test it for 100X. There can be a situation where your system can experience an increasing load.
- Suppose you are designing an E-commerce application then you can expect a spike in the load during a Flash Sale or when a new Product is Launched for sale.
- In that case, your system should be smart enough to handle the increasing load efficiently and that makes it Scalable.
- In order to ensure scalability you should be able to compute the load that your system will experience.
There are various factors that describe the Load on the System:
- Number of requests coming to your system for getting processed per day
- Number of Database calls made from your system
- Amount of Cache Hit or Miss requests to your system
- Users currently active on your system
Getting Started with System Design
System design is the process of designing the architecture and components of a software system to meet specific business requirements. The process involves defining the system’s architecture, components, modules, and interfaces, and identifying the technologies and tools that will be used to implement the system.
Important Topics for Getting Started With System Design
- Steps for getting started with System Design
- Approaching a Design Problem
- Reliability in System Design
- Availability in System Design
- Scalability in System Design
- Important points to consider when designing a software system:
- Advantages of designing a software system
- Disadvantages of designing a software system