Lesson 01 · Fundamentals

What is a Distributed System?

Welcome to the real world. Here, a single machine is no longer enough. Let's discover why we complicate things by distributing our systems, and the classic traps (latency, failures) that await us.

1

The Concept

Official Definition

"A distributed system is a collection of independent computers that appears to its users as a single coherent system."

— Tanenbaum & Van Steen

Centralized (Monolith)

One giant kitchen. All delivery drivers start from here.

  • ❌ If the kitchen burns down, 0 meals delivered.
  • ❌ Far from customers on the outskirts.

Distributed

Many small kitchens spread throughout the city.

  • ✅ If one kitchen closes, the others take over.
  • ✅ Closer to customers (fast).
2

Visualization [Image of centralized vs distributed network diagram]

Centralized vs Distributed Systems Diagram
Data flow comparison: Centralized (left) vs Distributed (right)
3

Flash Quiz

Self-assessment
4

Your Turn

Mission: Scale the API

Your monolithic API is maxing out. Use the whiteboard below to draw the addition of a Load Balancer and 2 instances.

Tip: Don't forget the database! Does it remain unique for now? (It's a single point of failure, but okay for starting).

For the Curious (Bonus)

  • Understand the 'Fallacies of Distributed Computing'
  • Read about the CAP Theorem (we will come back to this)
  • Watch how Netflix uses 'Chaos Monkey'
  • The difference between Strong and Eventual Consistency