System Design for Interviews and Beyond by Mikhail Smarshchok,
Salepage link: At HERE. Archive: https://archive.is/wip/D4iZh
The course is in the process of being migrated to a new platform and is not available for purchase. Access is retained for all previously enrolled students. See you soon!
Course curriculum
Introduction
Course introduction
FREE PREVIEW
Who will benefit from the course and how
FREE PREVIEW
Course overview
FREE PREVIEW
How to define system requirements
System requirements
Functional requirements
High availability
Fault tolerance, resilience, reliability
Scalability
Performance
Durability
Consistency
Maintainability, security, cost
Summary of system requirements
How to achieve certain system qualities with the help of hardware
Regions, availability zones, data centers, racks, servers
Physical servers, virtual machines, containers, serverless
Fundamentals of reliable, scalable, and fast communication
Synchronous vs asynchronous communication
Asynchronous messaging patterns
Network protocols
Blocking vs non-blocking I/O
Data encoding formats
Message acknowledgment
How to improve system performance with caching
Deduplication cache
Metadata cache
The importance of queues in distributed systems
Queue
Full and empty queue problems
Start with something simple
Blocking queue and producer-consumer pattern
Thread pool
Big compute architecture