Yandex

System Design CourseSystem Design Course1

System Design Course for Beginners



Index

Module 1: Introduction to System Design

  • What is System Design?
  • Why Learn System Design?
  • System Design vs Software Design
  • Types of System Design: High-Level vs Low-Level

Module 2: Design Basics & Requirements

  • Functional vs Non-Functional Requirements
  • Capacity Estimation
  • Latency vs Throughput
  • Availability vs Reliability

Module 3: Scalability and Load Handling

  • Horizontal vs Vertical Scaling
  • Load Balancers
  • CDN (Content Delivery Network)
  • Rate Limiting

Module 4: Database Design

  • Relational vs NoSQL Databases
  • Sharding and Partitioning
  • Indexing and Denormalization
  • CAP Theorem

Module 5: Caching

  • What is Caching?
  • Client-Side vs Server-Side Caching
  • Cache Invalidation Strategies
  • Redis and Memcached Overview

Module 6: Asynchronous Processing

  • Message Queues (e.g., Kafka, RabbitMQ)
  • Event-Driven Architecture
  • Cron Jobs and Scheduled Tasks

Module 7: System Design Patterns

  • Microservices vs Monolith
  • Service-Oriented Architecture
  • API Gateway Pattern
  • Strangler Fig Pattern

Module 8: Designing Real-World Systems

  • Design URL Shortener
  • Design Instagram
  • Design WhatsApp
  • Design YouTube

Module 9: Non-Functional Topics

  • Monitoring and Logging
  • Security and Authentication
  • Disaster Recovery
  • Cost Optimization

Module 10: Interview Preparation Tips

  • How to Approach System Design Questions
  • Common Mistakes to Avoid
  • Resources for Practice


Welcome to ProgramGuru

Sign up to start your journey with us

Support ProgramGuru.org

You can support this website with a contribution of your choice.

When making a contribution, mention your name, and programguru.org in the message. Your name shall be displayed in the sponsors list.

PayPal

UPI

PhonePe QR

MALLIKARJUNA M