Category

system-design

8 articles in this category

API Gateway vs Load Balancer vs Reverse Proxy: What's the Difference?

API Gateway vs Load Balancer vs Reverse Proxy: What's the Difference?

TLDR: These three terms are often used interchangeably because they overlap. A Reverse Proxy hides the server. A Load Balancer distributes traffic. An API Gateway manages APIs (Auth, Rate Limiting). Think of them as a hierarchy: An API Gateway is a L...

6 min read
Low-Level Design Guide for Ride Booking Application

Low-Level Design Guide for Ride Booking Application

TLDR: Designing Uber isn't just about maps; it's about managing state. A ride goes from REQUESTED to ACCEPTED to COMPLETED. We use the Strategy Pattern for pricing (Surge vs. Standard) and the Observer Pattern to notify drivers. This guide walks thro...

7 min read
Types of Locks Explained: Tips for Maintaining Consistent Systems and Avoiding Write Conflicts

Types of Locks Explained: Tips for Maintaining Consistent Systems and Avoiding Write Conflicts

TLDR: When multiple users access the same data, you risk overwriting each other's work. Pessimistic Locking locks the door so only one person can enter. Optimistic Locking lets everyone in but checks for conflicts before saving. Choosing the wrong on...

5 min read
System Design Databases: SQL vs NoSQL and Scaling

System Design Databases: SQL vs NoSQL and Scaling

TLDR: Choosing the wrong database is the most expensive mistake you can make. If you need strict consistency (Banking), use SQL. If you need massive scale (Instagram Likes), use NoSQL. This guide breaks down the decision framework, the CAP theorem, a...

6 min read
System Design Protocols: REST, RPC, and TCP/UDP

System Design Protocols: REST, RPC, and TCP/UDP

1. API Paradigms: REST vs. RPC When Server A talks to Server B, how do they structure the conversation? REST (Representational State Transfer) The language of the web. Concept: Resources (Nouns) are manipulated via HTTP Verbs. Format: Usually JSON. ...

3 min read
System Design Networking: DNS, CDNs, and Load Balancers

System Design Networking: DNS, CDNs, and Load Balancers

1. DNS (Domain Name System) DNS is the phonebook of the internet. Computers don't know what google.com is; they only know IP addresses like 172.217.0.0. How It Works (The Lookup) Browser Cache: "Have I visited google.com recently?" OS Cache: "Does ...

3 min read
System Design Core Concepts: Scalability, CAP, and Consistency

System Design Core Concepts: Scalability, CAP, and Consistency

1. Scalability: The Art of Growing Scalability is the ability of a system to handle increased load without crashing. There are two main ways to scale. Vertical Scaling (Scale Up) This means adding more power (CPU, RAM, Storage) to your existing serve...

4 min read
The Ultimate Guide to Acing the System Design Interview

The Ultimate Guide to Acing the System Design Interview

TLDR: System Design interviews aren't about finding the "right" answer; they are about demonstrating your ability to navigate trade-offs. This guide is a comprehensive glossary and framework covering the essential theory—from Load Balancing and Cachi...

8 min read