Different Tiers in software Architecture


 

Single Tier Applications



  • Think of a media player installed on your laptop
  • UI, Server and DB all reside in client system
  • Think of any desktop apps
  • No network latency, comparatively fast!
  • Update pushes can be slow - since whole stack needs to be updated
  • Innovation cycle slower - due to slower adoption and feedback cycle
  • Vulnerable since code is on client machine


Two Tier Application



  • Think of mobile apps - which just queries DB for data.
  • UI and logic hosted on client and only DB resides on server
  • Most Simple Web Applications follow this pattern
  • Since most logic is still on client, lesser network calls
  • Vulnerable since logic code is on client machine


Three Tier Application



  • Think of some modern web applications - tax calculator, education platforms, etc.
  • UI is on client, logic on one server and db on another server
  • clear separation of concerns
  • slightly higher network calls, but less vulnerable since no logic on client


N Tier Application



  • Think of most modern and complex web applications - e-commerce, ́ERP, etc.
  • There can be several other components including message queues, caching, load balancers, search servers, background jobs, various other micro-services…
  • Each one running on its own..
  • Why so many components?
    • Single Responsibility Principle
    • Separation of Concerns

Let's stay in touch for more insights and updates. You can find me on my LinkedIn Profile. Looking forward to connecting!