Mind~G
System-Design

What is System Design?

System design is the process of how we build large-scale applications.

Basic Terminology

TermSimple MeaningExample (WhatsApp)
ClientThe device that makes requestsYour phone sending a chat message
ServerThe computer that handles requestsWhatsApp’s backend that delivers the message
Database (DB)Where data is storedStores your chat history and contacts
APIRules for communication between systemsWhatsApp API that sends/receives messages
LatencyDelay between request and responseTime it takes for your message to be delivered
ThroughputNumber of requests handled per secondWhatsApp handling millions of messages per sec
Load BalancerDistributes requests across multiple serversEnsures no single WhatsApp server crashes
CacheTemporary fast storageStores recently sent messages for quick access
ScalabilityAbility to grow with more users/dataWhatsApp working for millions of users at once
RedundancyBackup systems to prevent failureDuplicate servers in case one goes down
Fault ToleranceKeeps working even if part failsMessage still sends even if one server fails
MicroservicesSmall independent services instead of one big appWhatsApp splitting chat, call, and media services
MonolithSingle big application with all features insideOne large WhatsApp codebase (not split)
Horizontal ScalingAdding more servers to handle growthWhatsApp adding more servers worldwide
Vertical ScalingMaking one server more powerful (RAM/CPU)Upgrading a WhatsApp server’s hardware

On this page