TOPIC #2Beginner 5 min read

Client-Server Model Basics

CSD
CompleteSystemDesign Editorial
Report an issue
Key takeawayCore Architecture Summary

Understand the fundamental architecture decoupling consumer interfaces from centralized business logic and persistent data stores.

Key Glossary Concepts in this TopicAll Glossary Terms
Interactive Lab · 🔀 Client-Server Scaling LabFull lab guide

Client-Server Split & Stateless Scaling Lab

Route user interactions across replicas and watch stateful servers break horizontal scaling.

App Server #1
0 req
App Server #2HOLDS SESSION
0 req
App Server #3
0 req
App Server #4
0 req

No interactions yet. Send a request to see how the load balancer routes it.

Failed requests
0/0 (0%)
Server round-trips
0
Bytes over wire
0.0 KB
Client model
0.9 KB JSON / click
The session lives only in replica #1 memory. The load balancer round-robins, so every request on another replica returns 401 until you add sticky sessions — which creates hotspots and breaks failover. Move sessions to Redis and every replica can serve every request.

Client-Server Communication Topology 💻↔️🖥️

Decoupling presentation layers (browsers/apps) from computation (app servers) and storage (database).

Client-Server Communication Topology 💻↔️🖥️
100%
Touchpad: Pinch to zoom • Drag to pan
Rendering visual architecture flowchart...

01.The Core Client-Server Concept

The client-server architecture partitions tasks or workloads between service providers (servers) and service requesters (clients).

Clients initiate requests across a computer network (the Internet or a private VPC), and servers listen passively on standard ports (e.g. 80 for HTTP, 443 for HTTPS) to process requests and formulate responses. This separation is foundational: without it, every peer would need to maintain both a full replica of the data and the business logic to process it — which is the P2P (Peer-to-Peer) model used in systems like BitTorrent.

The classic client-server split allows independent scaling: you can deploy 50 application server replicas behind a load balancer without touching the client code. Conversely, you can ship a new mobile app without rewriting the backend API.

02.Responsibilities of the Client vs Server

Modern distributed architectures strictly enforce separation of concerns between client and server layers. The golden rule: the server owns the truth; the client owns the display.

03.Thick Client vs Thin Client

Thin Clients (traditional server-rendered HTML) perform minimal computation locally. Pages are fully rendered by the server and sent as HTML over the wire. This simplifies client logic but increases server CPU and network bandwidth per page view.

Thick Clients (Single Page Applications in React/Vue or native iOS/Android apps) execute significant logic, state management, and optimistic UI rendering directly on the device. The initial load fetches a JavaScript bundle once; subsequent navigation is purely JSON API calls, dramatically reducing bandwidth and server load for interactive applications.

Architectural Trade-offs & Production Realities

Architectural Advantages

  • Centralized control of data and security rules
  • Independent scaling of client apps and server fleets
  • Separation of concerns enables parallel team development

Trade-offs & Constraints

  • Server can become a single point of failure without load balancing
  • Network latency overhead on every interactive action
  • Server maintains global state that clients must synchronize with
Production Implementation in Big Tech
Spotify• Desktop and Mobile Playback

Client apps handle UI rendering, local caching of audio buffers, and audio output decoding, while backend servers orchestrate catalog search, recommendation engines, and licensing verification.

Staff+ Engineering Takeaways

  • Client initiates; Server listens, verifies, and responds.
  • Servers must remain stateless for horizontal scale.
  • Never rely on client-side security checks alone.
  • Thick clients (SPAs) shift compute to the device, reducing server load per interaction.

Topic Knowledge Check

Exercise 1 of 1 • Test your architectural comprehension.

Exercise 1 of 10 answered
1

Why should backend application servers avoid storing in-memory user sessions directly on the server instance?

Rate This Architecture ChapterFeedback & Rating

How clear and actionable was this distributed systems breakdown?

Interactive Engineering Workbenches: