📄️ Introduction
Welcome to the System Design handbook.
📄️ Fundamentals
System Design
🗃️ Software Architecture
8 items
📄️ Category of Data
| Term | Access Frequency | Latency | Storage Layer | Typical Use Case |
📄️ Caching
Caching is a system design strategy used to store a copy of data in a temporary storage location — known as a cache — so future requests for that data can be served faster. The primary purpose is to reduce latency, improve performance, and reduce the load on the main data source (like a database or API).
📄️ Reverse Proxy
A reverse proxy is a server that sits in front of backend servers and routes client requests to the appropriate server, then returns the response to the client as if it came from the proxy itself.
📄️ API Gateway
An API Gateway is a critical component in system design, particularly in microservices architecture. It acts as a single entry point for all client requests and routes them to the appropriate backend services.
📄️ Load Balancer
A load balancer is a key component in system design that distributes incoming network or application traffic across multiple servers. Its primary goal is to optimize resource use, maximize throughput, reduce latency, and ensure fault tolerance.
📄️ Rate Limiting
Rate limiting is a technique used in system design to control the number of requests a user or system can make to a resource within a given time window. It protects services from abuse, overload, and ensures fair resource usage
🗃️ Replication
5 items
📄️ Performance
In system design, performance refers to how efficiently a system responds to and processes requests under normal and peak conditions. It determines how fast, scalable, and resource-efficient the system is.
📄️ Queue
Queue is a data structure or service that temporarily holds tasks, messages, or requests in a First-In-First-Out (FIFO) manner until they can be processed. It acts as a buffer between components that produce and consume data at different speeds.
🗃️ Latency
5 items
📄️ Throughput
Throughput refers to the number of requests or operations a system can handle within a specific period of time, typically measured in requests per second (RPS) or transactions per second (TPS).
📄️ TCP
TCP (Transmission Control Protocol) is a reliable, connection-oriented protocol in the transport layer of the OSI model (Layer 4) and Internet Protocol Suite (TCP/IP stack). It enables reliable communication between two endpoints (e.g., client and server) over an unreliable network like the Internet.
📄️ TCP Handshake
The TCP 3-way handshake is the process by which a client and server establish a reliable connection before exchanging data. It ensures that both sides are ready to communicate, sequence numbers are synchronized, and the network path is working.
📄️ TLS Handshake
The TLS (Transport Layer Security) handshake is a multi-step protocol used to establish a secure communication channel between a client and a server over an insecure network (like the Internet). It builds on top of TCP and ensures:
📄️ Scalability
Scaling in system design refers to the ability of a system to handle increased load or demand by growing in capacity. As your application gains users, handles more requests, or processes more data, scaling ensures it continues to perform well and meet user expectations.
📄️ Decentralization
Decentralization refers to distributing system components (computation, data, decision-making, control) across multiple nodes or locations, rather than relying on a single central authority or server.
📄️ Independence
Independence in system design refers to the ability of system components (modules, services, or subsystems) to function, develop, and scale with minimal or no dependency on others.
📄️ Reliability
Reliability
🗃️ Security
10 items