DEV Community

Mohmed Ishak
Mohmed Ishak

Posted on

3

4 Important System Design Concepts For Beginners

Hello, devs! Let me tell you a fact about software development. All the features you see in your favorite apps are easy to build. With a bit of Googling skills and perseverance in reading the docs, you'll be able to build those features. What's not easy is to build a large-scale system which includes the selection of right tools and technologies to supports all the features you want in your app as well as building a robust architecture which will support a large number of requests. In this article, I'll explain the basics of system design without fancy jargons.

[1] Vertical Scaling

Vertical scaling means making your server more powerful by upgrading to a more powerful machine. This includes faster CPU, higher storage capacity, etc.
Mohmed Ishak

[2] Horizontal Scaling

Horizontal scaling is almost always better than vertical scaling. Here, you're still making your server more powerful but the approach is different. Instead of upgrading one machine, horizontal scaling means adding more machines to act as servers, where these machines can collectively work together to produce a powerful server. There are a whole lot of advantages of horizontal scaling compared to vertical scaling. One obvious one is that when one machine crashes, the others can still work providing very less (or even zero) server downtime for the backend.
Mohmed Ishak

[3] Caching

Asking the server to send data to client is expensive because it puts load on the server. With caching, you're essentially storing static assets in memory (such as landing page for a web app) and serve the user from that memory for future requests instead of serving from the server. Why? Because that data is static so it is not efficient to pull that from the server for every request.

[4] Load Balancing

Remember horizontal scaling from point 2? A load balancer is a "thing" which redirects requests to one of the servers intelligently so that all servers can be utilized efficiently.
Mohmed Ishak

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay