Essential Concepts of Distributed System Design

Having explored distributed systems and system design during my GovTech internship, here are some essential concepts I’ve learned.

Twitter High Level Diagram

Scalability

Proxy vs Reverse Proxy

Load Balancer

API Gateway

Caching

Data Partitioning

Replication

SQL vs NoSQL

CAP Theorem

Latency & Throughput

Batch vs Stream Processing

Data Compression vs Deduplication

REST vs GraphQL vs RPC

Polling vs Long Polling vs WebSockets vs SSE

CDN

Serverless

Designing for Read-Heavy Systems

Designing for Write-Heavy Systems

← Back to Home