bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths

Loading lesson path

Learn/System Design

System Design

Building Blocks

The reusable primitives every design leans on: load balancing, caching, sharding, queues, consistency, and estimation.

Lesson 1

Load Balancing & Stateless Services

A load balancer spreads traffic across interchangeable, stateless app servers so any instance can serve any request and failed nodes drop out cleanly.

Read lesson →Loading…
Lesson 2

Caching & CDNs

Caching trades freshness for latency. A cache only helps when the read pattern is hot, the freshness tolerance is known, and the invalidation path is explicit.

Read lesson →Loading…
Lesson 3

Sharding & Replication

Replication copies data for availability and read scaling; sharding splits data across nodes for write/storage scaling. They solve different problems and are often combined.

Read lesson →Loading…
Lesson 4

Databases & Indexing

Choose storage by access pattern, not popularity. Relational databases give transactions, joins, and strong consistency; NoSQL stores trade those for horizontal scale and flexible schemas. Indexes ma…

Read lesson →Loading…
Lesson 5

Queues & Async Work

A queue lets a request return immediately while slow, retryable work happens in the background. Workers must be idempotent and have bounded retries.

Read lesson →Loading…
Lesson 6

Consistency & CAP

Under a network partition you must choose availability or consistency (CAP). Even without partitions, you trade latency against consistency (PACELC).

Read lesson →Loading…
Lesson 7

Reliability & Failure Modes

Distributed systems fail partially, so design for it. Bound every dependency call with a timeout, retry transient failures with capped backoff, trip a circuit breaker when a dependency is down, and d…

Read lesson →Loading…
Lesson 8

Observability & SLOs

You cannot operate what you cannot see. Track the signals that reflect user experience — latency, errors, traffic, and saturation (the four golden signals) — and define SLOs so you know when the syst…

Read lesson →Loading…
Lesson 9

Back-of-the-Envelope Estimation

Rough numbers decide the architecture. Go from daily active users to QPS, storage, and bandwidth before choosing databases or caches.

Read lesson →Loading…