System Design Course

System Design Course

English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 113 Lessons (13h 02m) | 15.0 GB

Learn how to design large-scale distributed systems, implement coding design patterns and make tradeoffs on consistency, availability and performance

In this course, you will gain a deep understanding of system design concepts. The complete guide. Architectural schemes, capacity planning, API List, tests, Faq.

It help you understand how large scale systems work. Definitely worth it if your looking to prepare for interviews or even in general

1. Design a mailing system like Gmail

  • Client to Server routing
  • Service Discovery
  • Authenticating Requests
  • Caching for Performance
  • Decoupting Systems

2. Design an algorithm for an audio search engine like Shazam

  • Mapping audio to key-values
  • Pruning, transforming and chunking
  • Combinatorial hashes
  • Storing and Searching hashes

3. Design a distributed rate limiter

  • Short term fixes
  • Distributed Rate Limiting
  • Algorithms – Sliding Window & Timer Wheel
  • Partitioning Queues
  • Real-world optimisations

4. Design a calling system like Whatsapp

  • PSTN and VOIP
  • Using the Session Initiation Protocol (SIP)
  • Charging users for a call
  • Fuelling a recommendation engine
Table of Contents

1 The Oracle and the Timer Wheel
2 Partitioning and Real-life Optimisations
3 Design an algorithm for an Audio Search Engine
4 Breakdown: The physical layer
5 Breakdown: The Routing Layer
6 Breakdown: The behavioral layer
7 Connecting to the internet: ISPs, DNS and everything in between
8 Internal routing: MAC addresses and NAT
9 HTTP, WebSockets, TCP and UDP
10 Communication Standards: REST, GraphQL and GPRC
11 Head of line blocking
12 Video transmission: WebRTC and HTTP-DASH
13 Scope and Requirement setting
14 Chapter #1: Service Registration and Proxies
15 Chapter #2: Authentication & Global Caching
16 Chapter #3: API contracts & Versioning
17 Chapter #4: Sending, Tagging & Searching Emails
18 Chapter #5: Contacts & Groups
19 Requirements of a chess website
20 Handling connections at scale
21 Consistent Hashing vs. Sharding
22 Connection related thundering herds
23 Request Batching and Conclusion
24 Calling App Design
25 Concept #1: Breaking calls into dialogs
26 Concept #2: The state machine
27 Concept #3: Charging Users
28 Concept #4: Consistent Hashing for caching call state
29 Converting data sources to a lake
30 The Map Reduce Architecture
31 Fault tolerance and engineering optimizations
32 Real time analytics
33 Ranking restaurants in real time and batch
34 Live Streaming Requirement Breakdown
35 Video Ingestion and Transformation
36 Transferring processed videos to end users
37 Problem Statement
38 Defining objects states and behaviors
39 Simplified Balances algorithm
40 APIs and coding requirements
41 Low Level Design
42 Coding: Building the service skeleton and defining objects
43 Coding: Algorithm
44 Coding: Test cases
45 Conclusion and Tips
46 #1: Caching: Engineering requirements
47 #2: Read your own writes
48 #3: Defining the core requirements
49 #4: Asynchronous processing: Keeping threads available
50 #5: View Consistency through thread assignment
51 Code #1: Code skeleton for ‘Get’ and ‘Set’
52 Code #2: Setting up fast evictions
53 Code #3: Thread Assignment and updating GET + SET
54 Code #4: Hot loading and Request Collapsing
55 What is an event bus?
56 Breaking down engineering requirements
57 The mechanics of the bus
58 Why use threads?
59 Code Skeleton and using an extensible Retry Algorithm
60 The Keyed Executor
61 Pull and Push Subscribers
62 Defining the data structures in the bus
63 Wrapper Classes
64 Coding the tests
65 Conclusion
66 An introduction to distributed systems
67 Horizontal vs Vertical Scaling
68 Monoliths vs Microservices
69 Load Balancing
70 Single Point of Failure
71 Service discovery and Heartbeats
72 API Design Goals
73 API Design in Practice
74 Asynchronous processing: benefits
75 The Message Queue
76 Publisher Subscriber Models
77 Event Driven Architectures
78 Event Driven Architectures – Advantages
79 Event Driven Architectures – Disadvantages
80 Distributed data consistency
81 Data Consistency across Continents
82 Leader-follower architectures
83 Tradeoffs – 2 phase commit protocol
84 Difference between SQL and NoSQL
85 Cassandra Internals
86 Quorom
87 Data replication in distributed systems
88 The Split Brain Problem
89 Location Representation
90 Data Structure – Quad Tree
91 Range Queries and Hilbert Curve
92 Motivation
93 Infrastructure Requirements
94 Practical considerations
95 System Requirements
96 One to one messaging
97 Last Seen Timestamps
98 Group Messaging
99 Requirements
100 Image Storage: Files vs. Database BLOB
101 Profile Creation and Authentication
102 One to One chat messaging
103 Matching right-swiped users
104 Serving recommendations to users
105 Requirements
106 Designing the Data Schema
107 Following Users
108 User Feed Service
109 Scaling the Instagram news feed
110 Video Processing
111 ISP Synergy
112 System Design Tips
113 Dos and Don’ts

Homepage