Understand backend communication design patterns, protocols, execution and proxying.
Author: Hussein Nasser
The course was downloaded from open Internet sources. Copyrights to the products belong only to their owners. The main purpose of the site is to provide users with free material for self-study. If you notice copyright violation, you can contact us to remove your product from our site at >>>>>
Regards,
Administration of the project Courses-Free.ru
DESCRIPTION
Backend engineering is an art. During my 18 years of career working with and building backend applications, I discovered that certain communication design patterns keep emerging.
There is only a handful of ways clients communicate with backend applications, and although they might be more, I believe the patterns I discuss in this course are the most common. These patterns include request-response, publish-subscribe, short and long, and push.
Based on these communication design patterns, engineers may use several protocols for concrete communication. While core transport vehicles are limited to EIP 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 were 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.
Fundamentals of Backend Communications and Protocols
Before the client can send a request, it has to establish a connection to the backend. What exactly is a request? Understanding the cost of parsing a recommendation based on the protocol makes the engineer appreciate the work done and equips 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, and 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 suit their needs.
This course is designed for engineers who have built backend applications, it is an intermediate-advanced level course, and 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.
WHO IS THIS COURSE FOR:
- 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
REQUIREMENTS
- Intermediate programming skills (1-2 years)
- Having built a backend application
- Basic network fundamentals
WHAT WILL YOU LEARN
- Learn the fundamentals of backend engineering
- Backend communication design patterns
- Understand how backend communication protocols work
- Comprehend how OS Kernel communicates 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
DOWNLOAD THE COURSE AT ONCE
The material can be removed at any time by request of the copyright holder!