System Design – It all starts here!
One thing that every developer wants to learn and master is — System Design. Designing applications which can serve customers seamlessly is our final goal. Therefore, let’s do it !
This is the first part of a new series of blogs that will explain system design in simple terms. We will start with an example and use that example to understand each component.
Example
Let’s say you have created a new website called “amazinglyme.com” and someone enters this website and presses send, they will see a web page with your super-hero image.
Basics Client-Server Architecture
A user when enters the website and presses send , it is called a ‘request’ because a user is requesting for the website. The user’s device from which the request arises is called the ‘client’.
To serve this request, there needs to be a computer somewhere which can return the required webpage. This computer is called the ‘server’ as it is serving the client request.
A server is simply a computer (physical or virtual) which is intended to ‘serve’ and provide a specific response/output on a specific request. This computer needs to be connected to the internet for it to be activated only after which, it will have an IP address.
The user, however, is requesting for ‘amazinglyme.com’ which is only the name of the website (domain name), but how does the internet know, where this request needs to be sent as there is no server called ‘amazinglyme.com’ to return the required webpage.
This computer which responds to requests from the internet (HTTPS/HTTP) is called a ‘web server’.
A server is identified by an IP address and we need a service which can tell us what is the IP address of the server which responds to ‘amazinglyme.com’. This service is called DNS (Domain Name Service).
A DNS is a service which stores IP address for the corresponding domain name and the server that serves the IP address for the given domain name (request) is called DNS server.
- We, now, know what is a — Request, Client, Web Server, DNS. Let’s combine together.

Summary
In the above diagram —
- User enters the website amazinglyme.com and presses send.
- The request goes to the DNS to resolve the domain to IP address.
- The IP is resolved by DNS and sent back to the client.
- The client will send the request to the IP of the server.
- The web server receives the request and sends the response (web page) back to the client which is loaded on the client’s system.
This is the basic client-server architecture with a single client and a single server.
See you in part-2 where we will scale this system for multiple users.