Back to system design notes

Learning roadmap

System Design Foundations

Choose a goal, then follow each stage as an ordered, explained outline.

Learning goal

Learn deeply

Build a durable mental model, then transfer it into a working application.

Foundation

Stage purpose: Establish the vocabulary and first working mental model.

Required background: Complete the linked prerequisites below or bring equivalent experience.

Expected outcome: Explain the core idea and use it in a small example.

Estimated time: 140 minutes

  1. Lesson · Estimated time: 35 minutes

    Tiers of Software Architecture

    Outcomes
    • Explain the core idea in Tiers of Software Architecture
    • Apply Tiers of Software Architecture in a representative design

    Prerequisites: No prerequisite topics

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Web Architecture, From Client to Server and Back — Carry the Tiers of Software Architecture model into the next design step and make the trade-off explicit.

  2. Lesson · Estimated time: 35 minutes

    Web Architecture, From Client to Server and Back

    Outcomes
    • Explain the core idea in Web Architecture, From Client to Server and Back
    • Apply Web Architecture, From Client to Server and Back in a representative design

    Prerequisites: Tiers of Software Architecture

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Scalability, from First Principles — Carry the Web Architecture, From Client to Server and Back model into the next design step and make the trade-off explicit.

  3. Lesson · Estimated time: 35 minutes

    Scalability, from First Principles

    Outcomes
    • Explain the core idea in Scalability, from First Principles
    • Apply Scalability, from First Principles in a representative design

    Prerequisites: Web Architecture, From Client to Server and Back

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: High Availability — Carry the Scalability, from First Principles model into the next design step and make the trade-off explicit.

  4. Lesson · Estimated time: 35 minutes

    High Availability

    Outcomes
    • Explain the core idea in High Availability
    • Apply High Availability in a representative design

    Prerequisites: Scalability, from First Principles

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Load Balancing — Carry the High Availability model into the next design step and make the trade-off explicit.

Core concepts

Stage purpose: Connect the concepts into a repeatable problem-solving model.

Required background: Complete the linked prerequisites below or bring equivalent experience.

Expected outcome: Apply the model to a representative exercise without copying a recipe.

Estimated time: 140 minutes

  1. Lesson · Estimated time: 35 minutes

    Load Balancing

    Outcomes
    • Explain the core idea in Load Balancing
    • Apply Load Balancing in a representative design

    Prerequisites: High Availability

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Monoliths & Microservices — Carry the Load Balancing model into the next design step and make the trade-off explicit.

  2. Lesson · Estimated time: 35 minutes

    Monoliths & Microservices

    Outcomes
    • Explain the core idea in Monoliths & Microservices
    • Apply Monoliths & Microservices in a representative design

    Prerequisites: Load Balancing

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Micro Frontends — Carry the Monoliths & Microservices model into the next design step and make the trade-off explicit.

  3. Lesson · Estimated time: 35 minutes

    Micro Frontends

    Outcomes
    • Explain the core idea in Micro Frontends
    • Apply Micro Frontends in a representative design

    Prerequisites: Monoliths & Microservices

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Databases — Carry the Micro Frontends model into the next design step and make the trade-off explicit.

  4. Lesson · Estimated time: 35 minutes

    Databases

    Outcomes
    • Explain the core idea in Databases
    • Apply Databases in a representative design

    Prerequisites: Micro Frontends

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Caching — Carry the Databases model into the next design step and make the trade-off explicit.

Applied design

Stage purpose: Transfer the concepts into a realistic implementation task.

Required background: Complete the linked prerequisites below or bring equivalent experience.

Expected outcome: Produce a small artifact that proves the decision works.

Estimated time: 175 minutes

  1. Lesson · Estimated time: 35 minutes

    Caching

    Outcomes
    • Explain the core idea in Caching
    • Apply Caching in a representative design

    Prerequisites: Databases

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Message Queues — Carry the Caching model into the next design step and make the trade-off explicit.

  2. Lesson · Estimated time: 35 minutes

    Message Queues

    Outcomes
    • Explain the core idea in Message Queues
    • Apply Message Queues in a representative design

    Prerequisites: Caching

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Stream Processing — Carry the Message Queues model into the next design step and make the trade-off explicit.

  3. Lesson · Estimated time: 35 minutes

    Stream Processing

    Outcomes
    • Explain the core idea in Stream Processing
    • Apply Stream Processing in a representative design

    Prerequisites: Message Queues

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Architecture Grab-Bag & Picking Tech — Carry the Stream Processing model into the next design step and make the trade-off explicit.

  4. Lesson · Estimated time: 35 minutes

    Architecture Grab-Bag & Picking Tech

    Outcomes
    • Explain the core idea in Architecture Grab-Bag & Picking Tech
    • Apply Architecture Grab-Bag & Picking Tech in a representative design

    Prerequisites: Stream Processing

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Case Studies & Mobile Apps — Carry the Architecture Grab-Bag & Picking Tech model into the next design step and make the trade-off explicit.

  5. Lesson · Estimated time: 35 minutes

    Case Studies & Mobile Apps

    Outcomes
    • Explain the core idea in Case Studies & Mobile Apps
    • Apply Case Studies & Mobile Apps in a representative design

    Prerequisites: Architecture Grab-Bag & Picking Tech

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Complete this path by applying these outcomes in your own project.