What is Client-Server Architecture? An Easy Explanation

Tanay BanerjeeTanay Banerjee
3 min read

A basic understanding of client server architecture can be,

an app requesting a list of restaurants to the server and the server giving back a list as a response. But often it can happen that there is logical manipulation of data. For example, your food ordering app is now asking for a list of top rated restaurants near your location. In this case, there will be filtering of data (manipulation/processing). Now, this manipulation of data can happen in the client as well as in the server. If the logic happens in the client, then it will be called a thick client, and if the logic sits in the server, then the client will be called a thin client.

Types of architecture:

  • 2 tier

If there is only client and server with all the data, and the logic/processing of data sits in either the server or the client , then it is a 2 tier architecture.

  • 3 tier

In case when the data is huge and needs to be stored and processed separately, 2 tier is divided into a separate layer. This is the database. In 3 tier architecture there are 3 layers, namely, the client/presentation layer, the application/logic layer and the data layer.

  • N tier

Now, in some cases when even the 3 tier architecture is not enough for the amount of computation and processing of data in an efficient manner, it is further divided into separate layers. For example, a caching layer can be introduced between the logic and data layers, or there can be proxies and load balancers in between client and logic layers. These are N tier architectures.

When to choose what?

  • Thin client in 2 tier architecture

In case, when you only have to serve images/texts and very less logical data manipulation is needed then a thin client with 2 tier architecture can be a good choice.

  • Thick client with 2 tier architecture

In case, when rich graphical user interface or too much processing is needed at the client end for example video editing software, then thick client is a good option.

  • 3 tier architecture

When the data is huge and a lot of processing is required, then it is better to make a separate machine for the data, a separate machine for the business logic and a separate client.

  • N tier architecture

When the applications grow larger and complex and need to cater to a large user base, and it is not possible using these 3 layers, then other layers or components like caching and load balancers come into picture.

Hope you liked it. Would appreciate if you share it with the community, so that others can gain something from it. Please provide feedback in the comments so that I can improve myself. Thanks for your time.

LinkedIn : linkedin.com/in/tanaybanerjeedev

0
Subscribe to my newsletter

Read articles from Tanay Banerjee directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Tanay Banerjee
Tanay Banerjee

Hi ๐Ÿ‘‹, I am Tanay. I am from Kolkata, West Bengal. I am a Flutter Developer with 2 years of working experience.