DEV Community

John Doe
John Doe

Posted on • Edited on

Learning System Design

I have recently started learning System Design concepts. What is System Design and what does it facilitates us with? I want to share what I have learnt till now. Feedback is appreciated.

System design is divided into two levels, high level system design and low level system design.

HLD(high-level-design) VS LLD(low-level-design)

HLD uses non-technical to partially technical terms to map various components, structure and flow of the project. It also includes the plan to select technologies to be used in the project, things to focus on achieving and things that should be avoided.

On the other hand, Low Level Design (LLD) deals with selection of coding standards to be used to build a decent flow of data. It focuses on writing maintainable, efficient and reusable codes. Basically, LLD is directly related to actual code.

Horizontal Vs Vertical Scaling

Scalability is one of the most important features to consider once a project is ready for use.

While deciding scaling techniques, there are two things to be considered i.e. horizontal scalability and vertical scalability.

Horizontal Scalability means dealing with the number of machines to handle the load on the server. When load on the server would be increasing, horizontal scaling suggests to increase the number of machines/servers.

While Vertical Scalability refers to configurations of each machine to handle the load faster and with more efficiency. In this case we increase the individual capacity of each machine to handle more load.

Capacity Estimation

Capacity estimation refers to estimate required resources such as storage, memory and processing power to handle the load easily.

I came to know the importance of the ability to estimate the requirements to run specific types of application. Although, there are tools to estimate requirements for provided details of an application but that may differ in real world scenarios.

In conclusion, as a newcomer to system design, I'm eager to continue learning and refining my skills. I welcome any suggestions or corrections to improve my understanding.

Thanks for your time!

Top comments (0)