System Design Course

System Design Course

English | MP4 | AVC 3840×2160 | AAC 44KHz 2ch | 5h 38m | 8.77 GB

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 Scope and Requirement setting
2 Chapter #1: Service Registration and Proxies
3 Chapter #2: Authentication & Global Caching
4 Chapter #3: API contracts & Versioning
5 Chapter #4: Sending, Tagging & Searching Emails
6 Chapter #5: Contacts & Groups
7 The Oracle and the Timer Wheel
8 Partitioning and Real-life Optimisations
9 Design an algorithm for an Audio Search Engine
10 Calling App Design: First Attempt
11 Problem Statement
12 Defining objects states and behaviors
13 Simplified Balances algorithm
14 APIs and coding requirements
15 Low Level Design
16 Coding: Building the service skeleton and defining objects
17 Coding: Algorithm
18 Coding: Test cases
19 Conclusion and Tips
20 #1: Caching: Engineering requirements
21 #2: Read your own writes
22 #3: Defining the core requirements
23 #4: Asynchronous processing: Keeping threads available
24 #5: View Consistency through thread assignment
25 Code #1: Code skeleton for ‘Get’ and ‘Set’
26 Code #2: Setting up fast evictions
27 Code #3: Thread Assignment and updating GET + SET
28 Code #4: Hot loading and Request Collapsing
29 What is an event bus?
30 Breaking down engineering requirements
31 The mechanics of the bus
32 Why use threads?
33 Code Skeleton and using an extensible Retry Algorithm
34 The Keyed Executor
35 Pull and Push Subscribers
36 Defining the data structures in the bus
37 Wrapper Classes
38 Coding the tests
39 Conclusion
40 Converting data sources to a lake
41 The Map Reduce Architecture
42 Fault tolerance and engineering optimizations
43 Real time analytics
44 Ranking restaurants in real time and batch

Homepage