The fundamental pattern that powers distributed systems, from web apps to cloud infrastructure.
The client-server model allows multiple users to access shared data and services through a centralized system. Clients request data or actions, and the server processes those requests and returns results.
Without this model, every user must store and manage their own data locally. This leads to inconsistent data, no collaboration, and systems that cannot scale.
Clients ask for things, and servers do the work and send results back.
Each user operates independently with their own data and logic. There is no communication or shared state between users.
Users attempt to share data manually, resulting in duplication, version conflicts, and lack of a single source of truth.
A central server is introduced. Clients send requests, and the server responds with processed data.
Requests flow from client to server, the server processes them (optionally using a database), and sends back responses.
The server can become overloaded or fail, making it a bottleneck and single point of failure.
Client does not mean frontend, and server does not mean backend. These are roles. Any system can act as a client or a server depending on context.
URL Shortener
Clients request redirection, server maps short URLs to long ones and redirects.
Chat Application
Clients send messages, server routes them to recipients and stores message history.
Payment System
Clients initiate transactions, server validates and processes payments securely.
Explore how client requests travel to the server, how queues form, and how failures impact latency and success rates. Click clients or toggle failure modes to see the system react.