All Notes

Browse all system design notes, filtered by category or tag.

A practical comparison of monolithic and microservice architectures — coupling, deployment, scaling, team context — and how to choose between them.

8 min read

Database Sharding

Horizontal partitioning of a database into independent shards — shard key selection, routing, replication with failover, and the operational costs.

9 min read

Event-Driven Architecture

Communicating through immutable, persisted events — replayability, idempotency, event sourcing, CQRS, and the trade-offs of eventual consistency.

How message queues decouple producers from consumers, survive worker crashes with retries and reassignment, and form the basis of pub-sub and event-driven systems.

How globally distributed edge servers cut latency for static content, the cache hit/miss flow, and invalidation strategies.

The difference between high-level design (system architecture, modules, interactions) and low-level design (classes, APIs, database schemas, implementation logic).

How load balancers distribute traffic across servers, why naive hashing breaks on scale events, and how consistent hashing with virtual nodes solves it.

Identifying SPOFs in centralized components and the standard toolkit for removing them: redundancy, replication, failover, partitioning, and backups.

Updated Feb 10, 2024
20 min read

Microservices Architecture Patterns

Essential patterns for designing, deploying, and operating microservices: decomposition, communication, data management, and operational patterns.

Updated Feb 5, 2024
18 min read

Netflix Architecture: Microservices at Scale

How Netflix built a resilient, scalable streaming platform serving 230M+ subscribers across 190 countries.

Updated Jan 30, 2024
12 min read

Caching Strategies: Patterns and Best Practices

Comprehensive guide to caching patterns including write-through, write-back, read-through, and cache-aside. When to use each and common pitfalls.

Updated Jan 28, 2024
15 min read

SQL vs NoSQL: Choosing the Right Database

A comprehensive comparison of relational and non-relational databases, their trade-offs, and decision frameworks for system design.

Understanding vertical and horizontal scaling, when to use each, and practical patterns for building scalable systems.

Updated Jan 22, 2024
12 min read
Series: Distributed Systems Fundamentals • Part 2

Consensus Algorithms: Raft vs Paxos

Comparing Raft and Paxos consensus algorithms, their trade-offs, and when to use each in distributed systems.

Updated Jan 20, 2024
8 min read
Series: Distributed Systems Fundamentals • Part 1

CAP Theorem: Understanding the Trade-offs

A deep dive into the CAP theorem, its implications for distributed systems, and how to choose the right trade-offs for your system.