Course Structure for System Design Interview Prep Crash Course

Get an overview of the design problems we will cover in the course.

The bottom-up approach to modern system design

System design problems usually have similarities, though specific details are often unique. We have extracted these similarities across design problems as the elementary design problems we’ll cover. One example of an elementary design problem is a load-balancing component, which we’ll probably use in every design problem in one way or the other.

Separating the elementary design problems is to thoroughly discuss their design just once. This means that later we can use them anywhere without going over them in advanced design problems again. We can think about elementary design problems as bricks to construct more effective, capable systems.

Many of the elementary design problems we discuss are also available for actual use in the public clouds, such as Amazon Web Services (AWS), Azure, and Google Cloud Platform (GCP). We can use such constructs to build a system to further cement our understanding.

Elementary design problems

The following essential elementary design will be covered in this course:

  1. Domain Name System (DNS)

  2. Load balancers

  3. Databases in distributed systems

  4. Key-Value store

  5. Content Delivery Network (CDN)

  6. Unique ID generator

  7. Client-side monitoring service

  8. Server-side monitoring service

  9. Distributed cache

  10. Distributed messaging queue

  11. Pub-sub system

  12. Rate limiter

  13. Blob store

  14. Distributed search

  15. Distributed logging service

  16. Distributed task schedular

  17. Sharded counters

Level up your interview prep. Join Educative to access 80+ hands-on prep courses.