§ 01
Section
System Design

Networking, proxies, scaling, containers, rate limiting, message queues, and the trade-offs behind every infrastructure decision.

Networking, proxies, scaling, containers, rate limiting, message queues, and the trade-offs behind every infrastructure decision.

All · 10ScalingNetworkingContainersQueues
01

Types of System Design

A high-level overview of the three lenses through which systems are designed — product, infrastructure, and object-oriented.

#System Design
02

CAP Theorem

Why distributed systems can guarantee at most two of consistency, availability, and partition tolerance — and what that means in practice.

#System Design#Distributed Systems
03

Back-Of-The-Envelope Estimation

The numbers, framework, and worked examples you need to size any system quickly and confidently.

#System Design#Estimation
04

Network Essentials

DNS, IP, TCP, UDP, HTTP, TLS, WebSockets, and API protocols — the networking layer every system design relies on.

#System Design#Networking
05

Proxies & Load Balancers

Forward proxies, reverse proxies, load balancers, and API gateways — how traffic is intercepted, routed, and distributed.

#System Design#Infrastructure
06

Message Queues

Durable buffers between producers and consumers — why queues matter, delivery guarantees, and when to choose Kafka, RabbitMQ, or SQS.

#System Design#Infrastructure#Messaging
07

Availability & Scaling

Vertical vs horizontal scaling, auto-scaling, data centre topology, availability zones, and multi-region deployment strategies.

#System Design#Infrastructure
08

Containers & Orchestration

Docker, Kubernetes, and Amazon ECS — how containers work, how orchestrators manage them, and when to choose each.

#System Design#Infrastructure#Containers
09

Rate Limiting

Fixed window, sliding window, token bucket, and leaky bucket — the algorithms behind rate limiting and the trade-offs of each.

#System Design#Infrastructure
10

Circuit Breaker

How the circuit breaker pattern prevents cascading failures in distributed systems — states, transitions, and Java implementation with Resilience4j.

#System Design#Resilience#Java