->

System Design Building Blocks

Published 3/2023MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHzLanguage: English | Size: 1.17 GB | Duration: 3h 48m


 

Get ready for System Design Interviews by mastering the fundamental concepts for building scalable web systems

What you'll learn

Understand the fundamental principles of system design and their role in building scalable web applications.

Develop expertise in key system components, including databases, load balancers, and caching.

Learn how to apply scaling techniques, such as sharding, replication, and load balancing, to improve web application performance.

Understand the CAP theorem and its implications for system design, and how to design systems that are consistent, available, and partition tolerant.

Master techniques for designing rate limiters, unique ID generators, and other key system components.

Prepare for system design interviews and other technical assessments by mastering foundational system design concepts and techniques.

Stay up-to-date with the latest trends and advancements in web system design.

Requirements

Basic understanding of system architecture: You should have a basic understanding of system architecture and how components interact with each other in a web application.

computer networks and protocols such as TCP/IP, HTTP, and DNS. Familiarity with databases: Students should be familiar with databases and have a basic understanding of relational database concepts such as tables, rows, and columns.

amiliarity with cloud technologies: Students should have a basic understanding of cloud technologies such as Web Services (AWS) or Microsoft Azure.

Willingness to learn: The course covers a lot of material, and students should be willing to put in the and effort to learn and practice the concepts covered in the course.

Description

This course is designed to provide a comprehensive understanding of the key building blocks of system design. The course will cover various topics such as basic web architecture, database design, replication, sharding, load balancing, caching, CAP theorem, back-end estimation, message queues, consistent hashing, key-value store, template to approach system design interviews, rate limiter, and unique ID generator.The course will b with an introduction to the basic web architecture, including the client-server model, HTTP protocol, and web servers. Students will learn about the various components of a web application, such as the front-end, back-end, and database, and how they interact with each other.The course will then delve into database design, including topics such as data modeling, normalization, and denormalization. Students will also learn about database replication, sharding, and how to scale a database horizontally and vertically.Next, students will explore load balancing and caching, which are essential components of a high-traffic web application. They will learn load balancer and differnt caching strats, including content delivery networks (CDNs).The course will also cover the CAP theorem, which is a fundamental principle of distributed systems. Students will learn about the trade-offs between consistency, availability, and partition tolerance in a distributed system.Students will then dive into back-end estimation, which is a crucial aspect of system design. They will learn about techniques for estimating the number of servers required to handle a given amount of traffic.The course will also cover message queues and how they can be used to decouple different parts of a system. Students will learn about the advantages of message queues and how they can be used to handle large volumes of data.Next, students will explore consistent hashing, which is a technique used for partitioning data across multiple servers. Students will learn about the advantages of consistent hashing and how it can be used to handle large amounts of data.The course will also cover key-value stores, which are databases that store data in a key-value format. Students will learn about the advantages of key-value stores and how they can be used to store large amounts of data.In addition, the course will provide students with a template to approach system design interviews. They will learn about the key components of a system design interview and how to prepare for it.Finally, the course will cover rate limiter and unique ID generator, which are important components of a scalable system. Students will learn about different rate-limiting strats and how to generate unique IDs in a distributed system.Overall, this course will provide students with a comprehensive understanding of the key building blocks of system design, which will be useful for anyone interested in building scalable web applications.

Overview

Section 1: Building Blocks

Lecture 1 How basic web app works ?

Lecture 2 Database

Lecture 3 Load Balancer

Lecture 4 DB Replication

Lecture 5 Cache

Lecture 6 CDN

Lecture 7 Stateless Web Tier

Lecture 8 Message Queue

Lecture 9 Logging & Metrics

Lecture 10 Sharding

Lecture 11 Back of Envelop Estimation

Lecture 12 CAP Theorem

Lecture 13 Summary

Section 2: Consistent Hashing

Lecture 14 Introduction to Consistent Hashing

Lecture 15 Rehashing Problem

Lecture 16 How consistent hashing works ?

Lecture 17 Two Problems

Lecture 18 Virtual Nodes

Lecture 19 Finding affected keys

Lecture 20 Summary

Section 3: Key Value Store

Lecture 21 Introduction

Lecture 22 Data Partition & Replication

Lecture 23 Consistency

Lecture 24 Inconsistency Resoultion

Lecture 25 Handling Failures

Lecture 26 System Architecture

Lecture 27 Write Path

Lecture 28 Read Path

Lecture 29 Wrap Up

Section 4: Template to Approach System Design Problems

Lecture 30 Introduction

Lecture 31 Step 1 : Understand Problem

Lecture 32 Step 2: Propose HLD & get nod on it

Lecture 33 Step 3 : Deep Dive in Design

Lecture 34 Step 4 : Wrap Up

Lecture 35 Do's & Don't

Section 5: Design Rate Limiter

Lecture 36 Introduction

Lecture 37 Understanding Requirements

Lecture 38 Propose HLD & get nod on it

Lecture 39 Token Bucket Algo

Lecture 40 Leaky Bucket Algo

Lecture 41 Fixed Window Counter Algo

Lecture 42 Sliding Window Log Algo

Lecture 43 Sliding Window Counter Algo

Lecture 44 High Level Design

Lecture 45 Deep Dive - Detail Design

Lecture 46 Distributive Rate Limiter

Lecture 47 Wrapping Up

Section 6: Design Unique ID Generator

Lecture 48 Introduction

Lecture 49 Understanding the requirements

Lecture 50 Propose HLD & suggest Multi Master Replication approach

Lecture 51 UUID approach

Lecture 52 Ticket Server approach

Lecture 53 Twitter Snowflake approach

Lecture 54 Deep Dive

Lecture 55 Wrapping Up

Software developers: This course is ideal for software developers who want to learn how to design scalable and robust web applications.,System architects: This course is also suitable for system architects who want to improve their system design skills and learn best practices for designing high-performance and fault-tolerant systems.,Technical managers: This course can be useful for technical managers who want to understand the fundamentals of system design and be able to communicate effectively with their development teams.,Computer science students: This course can be a valuable resource for computer science students who want to learn about system design and prepare for system design interview questions.,Anyone interested in system design: This course is also suitable for anyone who is interested in learning about system design and wants to improve their technical skills in this area.

HomePage:

https://www.udemy.com/course/system-design-building-blocks/

 

 

 


 TO MAC USERS: If RAR password doesn't work, use this archive program: 

RAR Expander 0.8.5 Beta 4  and extract password protected files without error.


 TO WIN USERS: If RAR password doesn't work, use this archive program: 

Latest Winrar  and extract password protected files without error.


 Themelli   |  

Information
Members of Guests cannot leave comments.




rss