All pillars
01

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

02

Client–Server Architecture & Request Flow

How a request travels from browser to database and back.

Coming soon
03

Latency vs Throughput

Understanding and optimising the two most critical performance dimensions.

Coming soon
04

Availability vs Reliability vs Durability

Three terms that sound similar but lead to very different design decisions.

Coming soon
05

Scalability Basics (Vertical vs Horizontal)

When to scale up, when to scale out, and what limits each approach.

Coming soon
06

Consistency Models

Strong, eventual, and everything in between — with real tradeoffs.

Coming soon
07

CAP Theorem (Practical)

Not a theorem to memorise — a framework for hard consistency tradeoffs.

Coming soon
08

Stateless vs Stateful Systems

How state assumptions shape scaling, failover, and deployment.

Coming soon
09

Caching Fundamentals

Cache strategies, invalidation, and where caching silently breaks things.

Coming soon
10

Load Balancing Basics

Algorithms, health checks, and real-world deployment patterns.

Coming soon
11

Synchronous vs Asynchronous Systems

Why the choice between sync and async is rarely about speed alone.

Coming soon
12

Monolith vs Microservices

When the split is worth it and when it is not.

Coming soon
13

Tight vs Loose Coupling

How coupling decisions determine how fast your system can change.

Coming soon
14

How Systems Fail

Failure modes, cascading failures, and designing with failure in mind.

Coming soon