System Design Basics

Photo by Jakob Søby on Unsplash

System design is one of the most significant concepts of software engineering. For a new learner, it becomes confusing to learn about designing because there are no fixed guidelines in various software architecture books that are hard to understand. Everywhere you check seems to have a different approach.

So, I set out to design a system based on my experience of learning architecture courses. This is part of a series on system design for beginners (link is given below). For this article, let’s design a Rate Limiter service.

What is Rate Limiting?

Rate limiting is a simple concept to grab, but it’s vital for…


System Design Basics

Photo by Michael Dziedzic on Unsplash

System design is one of the most crucial concepts of software engineering. While designing a system, you need to know which solution is used for which kind of problems. Familiarizing yourself with the basic concepts and terminologies of the system design is important for designing a fault-tolerant and performant system.

This article will try to understand an important system design concept, Message queue — a brief description of how the publish-subscribe pattern works. And at the end of the article, we will try to design a notification system using a message queue.

What is Message Queue?

From the name itself, you can understand it…


System Design 101

Photo by Trnava University on Unsplash

System design is one of the most important concepts of software engineering. One of the main problems of designing a system is that the terminology used in the system design resources is hard to grasp at first. Besides you need to know which tool or term is used for which problem. Familiarizing yourself with the basic concepts and terminologies of system design would greatly help in designing a system.

This article explores an essential topic of system design, Caching. It is one of the essential techniques of system design. In almost all the systems, we might need to use caching…


Photo by Liane Metzler on Unsplash

System design is one of the most important concepts of software engineering. Everybody who starts to change into a system designer from a programmer has a hard time understanding how to know about concepts regarding a system design. If you don’t know about the terminologies that are used in system design it is hard to learn about them.

This article explains an important topic of system design, the Client-Server Architecture. You may know about how servers and clients communicate here. Familiarizing yourself with the basic concepts of TCP, IP, HTTP would greatly help in designing a system.

Client-Server architecture

Client/server architecture is…


Photo by Zane Lee on Unsplash

System design is one of the most significant parts of software engineering. It is intimidating to start designing a system. One of the main reasons is that the terminologies described in software architecture books are hard to understand. And there are no fixed guidelines. Everywhere you check seems to have a different approach. It becomes confusing for a new learner.

So, I set out to design a system based on my experience of learning architecture courses. This is part of a series on system design for beginners (link is given below). …


System Design 101

Photo by JOSHUA COLEMAN on Unsplash

System design is one of the most important concepts of software engineering. When I started my associate architecture course, I had a hard time understanding how you design a system. One of the main problems was that the terminology used in the system design resources is hard to understand at first.

This article examines an important topic of system design, the Load Balancer. You may know about its characteristics and techniques of server selection here. Familiarizing yourself with the basic concepts and terminologies of system design would greatly help in designing a system.

Load Balancer

A load balancer is a vital component…


Getting Started

#design
Photo by Jonathan Singer on Unsplash

Nowadays, system design interviews are part of the process of top-level tech companies. Many people are afraid of system design interviews as there’s no certain pattern to prepare. Besides, system design questions are open-ended, and there’s no standard right or wrong answer, which makes the preparation process even harder.

System design is one of the most important and feared aspects of software engineering. One of the main reasons was that everybody seems to have a different approach; there is no clear step by step guidelines.

The struggle of software engineers with system design can be divided into two parts:

  • The…


relax, overcome negativity
Photo by Prateek Katyal on Unsplash

We all suffer from the storm of negative thoughts every day. Negative thoughts appear in our minds daily; it does not matter how hard we try to avoid them. Negativity has such power that it can take hold of our mind and influence way too much of our life if we are not careful. So we need to be alert and conscious.

Whenever we start to do something new, there is something in the head that gives all the negative signals. What would be the output, what other people may think, what if it does not end well etc. etc…


#UrlShorteningService #tinyURL #systemdesign
Photo by Markus Spiske from Pexels

System design is one of the most important and feared aspects of software engineering. This opinion comes from my own learning experience in an associate architecture course. When I started my associate architecture course, I had a hard time understanding the idea of designing a system.

One of the main reasons was that the terms used in software architecture books are pretty hard to understand at first, and there is no clear step by step guidelines. Everybody seems to have a different approach.

So, I set out to design a system based on my experience of learning architecture courses. This…


Photo by Tobias Fischer on Unsplash

System design related articles:

Articles related to Design Patterns:

Links for Non-Technical Articles:

Ashis Chakraborty

Associate Architect, Samsung Electronics | Writer in free time, Like to read about technology, writing & psychology | LinkedIn https://tinyurl.com/y57d68fq

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store