System Design Notes
Curated notes on distributed systems, architecture patterns, and system design fundamentals. Built for engineers who want to understand the why behind the how.
Categories
Explore notes organized by topic
System Design Fundamentals
Scalability, availability, consistency, and trade-offs
Distributed Systems
Consensus, replication, partitioning, and fault tolerance
Recent Notes
Latest additions to the knowledge base
A practical comparison of monolithic and microservice architectures — coupling, deployment, scaling, team context — and how to choose between them.
Horizontal partitioning of a database into independent shards — shard key selection, routing, replication with failover, and the operational costs.
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.
Stay Updated
Get notified when new notes are published. No spam, unsubscribe anytime.
Also available via RSS