System Design

System Design For Beginners

Build the system design mindset from scratch. Learn scaling, databases, caching, queues, CDNs, reliability, and interview strategies through easy-to-follow lessons and hands-on labs.
Aditya Chauhan
Aditya Chauhan
Technical PM and Learning Designer
System Design For Beginners
Play Button
Fill this form to get a notification when course is released.
book
5
Lessons
book
Challenges
Article icon
52
Topics

What you’ll learn

Our students work at..

Description

This is a no-nonsense system design course for absolute beginners. This course focuses on building the thought process for system design. Asking the right questions and designing things logically rather than memorizing things.

This course builds a system around a photo-sharing app like Instagram for millions of users. Every lesson starts with some component breaking - either the server dies, a query takes 4 seconds, or the server logs everyone out, then covers the component that fixes it, and the new problem the newly added component creates.

Across multiple lessons, you'll build the full foundation: functional and non-functional requirements, scaling, load balancing and load balancers, SQL vs NoSQL, indexing to speed up the queries, caching, replication, sharding, CDNs and object storage, message queues, timeouts and retries, rate limiting, CAP theorem, and monitoring. Everything is covered in plain layman's language; you don’t need a math degree to understand this.

We also have hands-on labs if you want to experience some of the things we will discuss in this course: kill a live container and watch the load balancer route things to another container, turn that 4-second query into 12 milliseconds indexing, and promote a database replica after a failure.

We also cover Interview Bytes, showing how each topic appears in a system design interview - the question shape, the strong answer, and the trap.

If you can use a terminal and have some degree of perseverance, you're ready to start.

Read More

What our students say

Aditya Chauhan

About the instructor

Aditya is a Technical PM and Learning Designer at KodeKloud, he has led more than 50+ courses. With a background in computer science and a lifelong love for teaching, he has always found something deeply rewarding in sharing what he knows with others. Whatever the topic, he loves finding a way to break it down into simple concepts, so learning feels less like a struggle and more like a series of small, satisfying moments.

‍

No items found.

Foundations & One Server

lock
16
Topics
Lesson Content

Module Content

Introduction00:37
What is System Design, Actually?05:00
HLD vs LLD - Where This Course Lives02:08
Interview Byte: Answer at the Right Altitude01:11
Functional vs Non-Functional Requirements03:24
Requirements Before Boxes04:02
Interview Byte: The First Five Minutes01:08
Monolithic vs Microservices03:54
Vertical vs Horizontal Scaling03:23
Interview Byte: Why Not Just Buy a Bigger Server?00:58
How a Request Actually Travels03:58
Load Balancers05:56
Stateless vs Stateful06:18
Interview Byte: The Random-Logout Question01:06
Two Containers Behind a Load Balancer00:46
Lab: Two Containers Behind a Load Balancer

Data: Reads and Writes

lock
17
Topics
Lesson Content

Module Content

Data Modeling06:54
SQL vs NoSQL05:19
Interview Byte: Which DB and Why?01:13
Indexes03:50
Fix the Slow Query00:23
Lab: Fix the Slow Query
Zoom Out and Revisit00:55
Caching04:11
Cache Invalidation & TTLs04:47
Interview Byte:Two Caching Questions01:31
Cache-Aside with Redis00:17
Lab: Cache-Aside with Redis
Replication06:24
Sharding04:29
Replication & Failover00:24
Lab: Replication & Failover
Zoom Out and Revisit01:09

Media, APIs, and Async Work

lock
8
Topics
Lesson Content

Module Content

The Upload Path05:16
CDNs and Object Storage07:02
APIs in Plain Words05:45
Real-Time: Polling vs WebSockets06:13
Message Queues05:33
Pub/Sub and Fan-Out03:48
Interview Byte: How Does the Feed Get Built?01:40
Lab: Message Queues with RabbitMQ

Failure, Protection, and Operations

lock
7
Topics
Lesson Content

Module Content

Single Points of Failure05:23
Timeouts, Retries, Idempotency07:42
Rate Limiting and Security Basics05:53
CAP Theorem Without the Math04:21
Interview Byte: Consistency or Availability - Per Data01:00
Monitoring 10106:47
Lab: Self-Healing and Rate Limiting (Kubernetes)

Put It All Together

lock
4
Topics
Lesson Content

Module Content

Back-of-Envelope Estimation06:18
Interview Byte: Make the Numbers Earn Their Place01:05
Lab: Capstone - Assemble the Photo App
Tell me what you think!

Frequently Asked Questions

Who are KodeKloud courses for?

KodeKloud courses are designed for learners at different skill levels, from beginners to experienced IT professionals looking to develop or strengthen their technical skills.

Do KodeKloud courses include hands-on practice?

Yes. Many KodeKloud courses include hands-on labs and practical exercises that let you apply what you learn in real-world environments.

Do I need any prior experience to take a KodeKloud course?

Prerequisites vary by course. Each course page provides information about the recommended knowledge or experience you may need before starting.

Can I learn at my own pace?

Yes. KodeKloud courses are designed for self paced learning, so you can learn according to your schedule and revisit lessons and practice activities as needed.

Can I access KodeKloud courses on mobile devices?

Yes. KodeKloud can be accessed through supported web browsers and mobile devices, allowing you to learn from different devices.

Do KodeKloud courses provide certificates?

Certificate availability depends on the course and your KodeKloud plan. Check the individual course page or your account for the applicable certificate details.

How long does it take to complete a KodeKloud course?

Course completion time varies depending on the course length, your prior experience, and how much time you spend on hands-on practice.

Can I practice while taking the course?

Yes. Courses that include hands-on labs allow you to practice concepts as you progress through the lessons.

 How do I start learning a KodeKloud course?

Choose a course that matches your learning goals, review its requirements and curriculum, and select the available subscription option to start learning.

System Design For Beginners
Play Button
System Design For Beginners
Fill this form to get a notification when course is released.
This course comes with hands-on cloud labs
5
Modules
Lessons
52
Lessons
Course Certificate
02.65
Hours of Video
Hours of Labs
Story Format
Videos
Case Studies
Demo
Labs
Cloud Labs
Mock exams
Quizzes
Discord Community Support
Community support
English
Closed Captions

Expand Your Skills in Other Domains

Top-rated KodeKloud courses across popular technology tracks
No items found.
System Design
close