Srbija Posted October 1, 2023 Share #1 Posted October 1, 2023 Fundamentals Of Backend Engineering Last updated 3/2023 MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz Language: English | Size: 12.85 GB | Duration: 15h 39m Understand backend communication design patterns, protocols, execution and proxying What you'll learn Learn the fundamentals of backend engineering Backend communication design patterns Understand how backend communication protocols work Comprehend how OS Kernel communicate with Backend Applications Operating System fundamentals (Thread, Process, async IO in linux) Learn HTTP/1.1, HTTP/2, HTTP/3 Learn gRPC, WebRTC, WebSockets Learn TLS 1.2, TLS 1.3, QUIC 0RTT Requirements Intermediate programming skills (1-2 years) Having built a backend application Basic network fundamentals Description Backend engineering is an art. During my 18 years career working with and building backend applications, I discovered that certain communication design patterns keep emerging. There are only handful of ways clients communicate with backend applications, although they might be more, I believe the patterns I discuss in this course are the most common. Examples of these patterns are request-response, publish-subscribe, short and long and push.Based on these communication design patterns, engineers may use a number of protocols for concrete communication. While core transport vehicles are limited to either TCP or UDP, tons of industry specific protocols are built on top of these two to address certain problems and use cases. Examples of these high level protocols are HTTP/1.1, HTTP/2, HTTP/3, gRPC, WebRTC and many more. Other transport protocols like QUIC was built on top of UDP to bring HTTP/2 streaming down at the transport level. Each protocol has its pros and cons and fits certain use cases. In the course, I discuss the top common protocols and provide examples and demos where applicable.Before the client can send a request, it has to establish a connection to the backend. Understanding how the connection is established, and what parts of connection establishment is done at kernel and what parts are done at the backend application process is critical. How the connection is then accepted by the backend application and how it can accept connections as fast as possible so the kernel queue doesn t get full otherwise clients can no longer connect.After the connection is established the client sends the request, but what happens exactly in the backend application to read the request? What exactly is a request? Understanding the cost of parsing a request based on the protocol makes the engineer appreciate the work done and equip her with better tools to troubleshoot performance problems or bugs.Once the request reaches the backend, the application has to execute the request. The backend has a buffet of design choices when it comes to the style of execution it can choose. Understanding the difference between a process and a thread, multi-process, multi-threaded and the correlation to the number of CPU cores or hardware threads is crucial to pick the right execution pattern. One does not have to stick with these patterns but can invent new ones that suits their needs.This course is designed for engineers who have built backend applications, it is an intermediate advance level course, certain programming and networking knowledge is required so I recommend taking my fundamentals of network engineering course before taking this course if you don t have the networking skills. I hope you enjoy this course, and thank you so much for considering it. Overview Section 1: Introduction Lecture 1 Welcome Lecture 2 Who is this course for? Lecture 3 Course Outline Lecture 4 Download all slides, source code and references Section 2: Backend Communication Design Patterns Lecture 5 Backend Communication Design Patterns Intro Lecture 6 Request Response Lecture 7 Synchronous vs Asynchronous workloads Lecture 8 Push Lecture 9 Polling Lecture 10 Long Polling Lecture 11 Server Sent Events Lecture 12 Publish Subscribe (Pub/Sub) Lecture 13 Multiplexing vs Demultiplexing (h2 proxying vs Connection Pooling) Lecture 14 Stateful vs Stateless Lecture 15 Sidecar Pattern Section 3: Protocols Lecture 16 Protocols Intro Lecture 17 Protocol Properties Lecture 18 OSI Model Lecture 19 Internet Protocol Lecture 20 UDP Lecture 21 TCP Lecture 22 TLS Lecture 23 HTTP/1.1 Lecture 24 WebSockets Lecture 25 HTTP/2 Lecture 26 HTTP/3 Lecture 27 gRPC Lecture 28 WebRTC Section 4: Many ways to HTTPS Lecture 29 HTTPS Communication Basics Intro Lecture 30 HTTPS over TCP with TLS 1.2 Lecture 31 HTTPS over TCP with TLS 1.3 Lecture 32 HTTPS over QUIC (HTTP/3) Lecture 33 HTTPS over TFO with TLS 1.3 Lecture 34 HTTPS over TCP with TLS 1.3 and 0RTT Lecture 35 HTTPS over QUIC with 0RTT Section 5: Backend Execution Patterns Lecture 36 Backend Execution Patterns Intro Lecture 37 The Process and The Thread and how they compete for CPU time Lecture 38 How The Backend Accepts Connections Lecture 39 Reading and Sending Socket Data Lecture 40 The Listener, The Acceptor and the Reader Lecture 41 Single Listener, Acceptor and Reader Thread Execution Pattern Lecture 42 Single Listener, Acceptor and Multiple Readers Thread Execution Pattern Lecture 43 Single Listener, Acceptor, Reader with Message Load Balancing Execution Pattern Lecture 44 Multiple Accepter Threads on a Single Socket Execution Pattern Lecture 45 Multiple Listeners, Acceptors and Readers with Socket Sharding Execution Pattern Lecture 46 Backend Idempotency Lecture 47 Nagle's Algorithm Section 6: Proxying and Load Balancing Lecture 48 Proxy vs Reverse Proxy Lecture 49 Layer 4 vs Layer 7 Load Balancers Section 7: Extras Lecture 50 How ChatGPT uses Server Sent Events Lecture 51 How I design software Backend Engineers,FullStack Engineers,Frontend Engineers interested in the Backend (must have built a backend app),Network engineers who want to get better at backend design,Site reliability engineers Hidden Content Give reaction to this post to see the hidden content. Hidden Content Give reaction to this post to see the hidden content. Hidden Content Give reaction to this post to see the hidden content. Link to comment
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now