Module 91: Introduction to System Design

Lesson 3 of 5 · 15–25 minutes

Components and C4 diagrams

🏠The everyday picture

A city map at different zoom levels: the country (where's the city?), the city (which areas?), a neighbourhood (which buildings?), a building plan (which rooms?). Each zoom answers different questions for different people.

📘What it really is

flowchart LR
  student([Student]) -->|books sessions| web[Web app<br/>React]
  tutor([Tutor]) -->|manages availability| web
  web -->|HTTPS/JSON| api[API<br/>Node.js + TypeScript]
  api --> db[(PostgreSQL)]
  api --> pay[Payment gateway]
  api --> mail[Email/SMS provider]

🖱️Try it

Draw the C4 Context and Container diagrams for the booking platform (Mermaid in a Markdown file, or draw.io), with labelled boxes and arrows. Then draw the Component diagram for the API. Show it to someone non-technical with only the Context diagram, and check they understand what the system does.

✅Quick check

What does the C4 Container diagram show?

Show the answer

The separately running parts of the system (apps, APIs, databases, workers) and how they communicate.

Why label every arrow?

Show the answer

So readers know what flows between components and how (for example, "creates booking via HTTPS/JSON").

← PreviousNon-functional requirements
ProLearners Assist