Fundamentals of System Design
1 article published
Before you can design systems at scale you need a solid mental model of the building blocks. This pillar covers the concepts that underpin every other decision you will make as an architect.
Reading Path
Client–Server Architecture & Request Flow
How a request travels from browser to database and back.
Coming soonLatency vs Throughput
Understanding and optimising the two most critical performance dimensions.
Coming soonAvailability vs Reliability vs Durability
Three terms that sound similar but lead to very different design decisions.
Coming soonScalability Basics (Vertical vs Horizontal)
When to scale up, when to scale out, and what limits each approach.
Coming soonConsistency Models
Strong, eventual, and everything in between — with real tradeoffs.
Coming soonCAP Theorem (Practical)
Not a theorem to memorise — a framework for hard consistency tradeoffs.
Coming soonStateless vs Stateful Systems
How state assumptions shape scaling, failover, and deployment.
Coming soonCaching Fundamentals
Cache strategies, invalidation, and where caching silently breaks things.
Coming soonLoad Balancing Basics
Algorithms, health checks, and real-world deployment patterns.
Coming soonSynchronous vs Asynchronous Systems
Why the choice between sync and async is rarely about speed alone.
Coming soonMonolith vs Microservices
When the split is worth it and when it is not.
Coming soonTight vs Loose Coupling
How coupling decisions determine how fast your system can change.
Coming soonHow Systems Fail
Failure modes, cascading failures, and designing with failure in mind.
Coming soon