Member-only story
Mastering System Design Essentials: Building Scalable and Robust Systems
Designing a system that supports millions of users is challenging, and it is a journey that requires continuous refinement and endless improvement. In this blog, we will discuss essential techniques that need to be considered when designing a robust system. After reading this blog, you will master a handful of techniques that will help you crack the system design.
Vertical scaling vs. horizontal scaling:
Vertical scaling, also known as “scale up,” is the process of giving your servers more power (more CPU, RAM, etc.). You can scale horizontally, also known as “scale-out,” by adding more servers to your resource pool.
Vertical Scaling:
- Vertical scaling, also known as scaling up, allows you to increase the resources of a single server or machine (such as its CPU, RAM, or storage).
- It usually entails upgrading the hardware of a single server, such as adding more powerful processors, increasing RAM, or adding more storage.
- Vertical scaling is typically easier to implement because it only requires changes to one server.
- It is useful for applications where a single server can handle the workload or where there is only one bottleneck point.
- The primary limitation of vertical scaling is that it has an upper limit, which is determined by the maximum resources that a single server can support. When that limit is reached…