Architecture · FOCUSED GUIDE

Learn System design.

Learn architecture trade-offs before tackling design scenarios.

YOUR LEARNING PATH

System design essentials

Start with the essentials or pick the concept you need.

RECOMMENDED NEXTHow should I start a system design answer?
Start learning
01Architecture & API designExplore concepts
  1. How should I start a system design answer?2 min
  2. Monolith vs modular monolith vs microservices?2 min
  3. What are layered, clean and hexagonal architecture?2 min
  4. What are DDD, SOLID and dependency inversion?2 min
  5. What makes a good REST API?2 min
  6. How do I choose SQL vs MongoDB?2 min
02Scaling & distributed systemsExplore concepts
  1. Vertical vs horizontal scaling?2 min
  2. Cache, CDN, replica or shard: which solves what?2 min
  3. How does cache-aside work?2 min
  4. What does CAP actually mean?2 min
  5. What is eventual consistency?2 min
03Messaging & reliabilityExplore concepts
  1. Queue vs event vs worker?2 min
  2. How do I design retries and dead-letter handling?2 min
  3. What are idempotency and the outbox pattern?2 min
  4. How do I handle partial failure across services?2 min

What you will study in System design

Focused lessons organized by concept. Start with the explanation, trace the examples, and check your recall before moving on.

Architecture & API design

System design is the process of choosing components, data flows and trade-offs that meet a product's requirements. It starts with what users need and the scale and failure conditions the system must handle. A design is easier to evaluate when assumptions are explicit instead of hidden behind a list of technologies.

Scaling & distributed systems

Vertical scaling adds resources to one machine, while horizontal scaling adds machines and distributes requests or data. Horizontal scaling improves capacity only if work can be shared without losing correct state coordination. Stateless request handlers are easier to spread, but databases, sessions and background work may still need special handling.

Messaging & reliability

A queue holds work waiting to be processed, a worker executes that work, and an event describes a fact that already happened. Commands request an action, while events can notify multiple interested consumers. Delivery and acknowledgement rules determine what happens when workers crash or messages are repeated.

Related to System design
Expand your skills next