Backend Engineering (Intermediate)
This collection of videos covers major system design concepts and fundamentals that every backend engineer needs to understand. This will help you in your design interviews. The videos are ordered in the way they should be consumed. This playlist is designed for intermediate viewers
List of all Backend Engineering Playlists
👨💻Backend Engineering (Beginner) https://www.youtube.com/playlist?list=PLQnljOFTspQUNnO4p00ua_C5mKTfldiYT
👩💻Backend Engineering (Intermediate) https://www.youtube.com/playlist?list=PLQnljOFTspQWGuRmwojJ6LiV0ejm6eOcs
👨🏻💻Backend Engineering (Advanced) https://www.youtube.com/playlist?list=PLQnljOFTspQUybacGRk1b_p13dgI-SmcZ
Curated by: Hussein Nasser (54 videos)
Currently Playing: Apache Kafka Crash Course
Apache Kafka is a distributed stream processing software developed by LinkedIn and written in Scala and Java.
Chapters
0:00 Intro
2:32 Kafka Broker
5:39 Kafka Producer
7:11 Kafka Consumer
8:34 Kafka Partitions
12:50 Queue vs Pub-Sub
16:47 Consumer Group
23:06 ZooKeeper
29:45 Coding Example
1:02:48 Kafka Pros-Cons
1:17:00 Summary
Download slides here
https://payhip.com/b/Y0Cq
(Members get all slides for all my video courses for free)
In this video I want to focus on the basics of Kafka, talk about how it works give finally spin up a Kafka cluster and write a producer and a consumer.
Kafka Components
_ producer
_consumer
_topic
_partition
How Kafka works
Example ( Ride sharing )
Spin Kafka cluster
Write a producer
Write a consumer
Kafka Applications
Pros and Cons
Source Code
https://github.com/hnasr/javascript_playground/tree/master/kafka
Docker commands spin up kafka
//if you ever mess up or you want to start fresh just stop and remove the containers and rerun the command
docker stop zookeeper kafka
docker rm zookeeper kafka
docker run --name zookeeper -p 2181:2181 -d zookeeper
docker run -p 9092:9092 --name kafka -e KAFKA_ZOOKEEPER_CONNECT=husseinmac:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://husseinmac:9092 -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 -d confluentinc/cp-kafka
Get my fundamentals of database engineering course link redirects to udemy with coupon applied (https://database.husseinnasser.com)
Resources
KIP 500 (Remove Zookeeper)
https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Managed+Metadata+Quorum
Become a Member on YouTube
https://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg/join
🧑🏫 Courses I Teach
https://husseinnasser.com/courses
🏭 Backend Engineering Videos in Order
https://backend.husseinnasser.com
💾 Database Engineering Videos
https://www.youtube.com/playlist?list=PLQnljOFTspQXjD0HOzN7P2tgzu7scWpl2
🎙️Listen to the Backend Engineering Podcast
https://husseinnasser.com/podcast
Gears and tools used on the Channel (affiliates)
🖼️ Slides and Thumbnail Design
Canva
https://partner.canva.com/c/2766475/647168/10068
🎙️ Mic Gear
Shure SM7B Cardioid Dynamic Microphone
https://amzn.to/3o1NiBi
Cloudlifter
https://amzn.to/2RAeyLo
XLR cables
https://amzn.to/3tvMJRu
Focusrite Audio Interface
https://amzn.to/3f2vjGY
📷 Camera Gear
Canon M50 Mark II
https://amzn.to/3o2ed0c
Micro HDMI to HDMI
https://amzn.to/3uwCxK3
Video capture card
https://amzn.to/3f34pyD
AC Wall for constant power
https://amzn.to/3eueoxP
Stay Awesome,
Hussein
Tracks in this Playlist
- What is the TCP 3-Way Handshake and Why Backend Engineers should understand it
- Layer 4 vs Layer 7 Proxying In Details Explained with Examples
- Database Engines Crash Course (MyISAM, Aria, InnoDB, XtraDB, LevelDB & RocksDB)
- How HTTP/2 Works, Performance, Pros & Cons and More
- Load balancing in Layer 4 vs Layer 7 with HAPROXY Examples
- 7 Tips to Optimize Your Backend API Without Caching
- Your Backend is Also a Frontend (Backend vs Frontend Engineering)
- Overengineering in Software
- NginX Crash Course (Layer 4 & Layer 7 Proxy, HTTPS, TLS 1.3, HTTP/2 & More)
- HAProxy Crash Course (TLS 1.3, HTTPS, HTTP/2 and more)
- What is a Virtual IP Address? How does it help with High-Availability
- Fail-over and High-Availability (Explained by Example)
- Active-Active vs Active-Passive Cluster to Achieve High Availability in Scaling Systems
- Connection Pooling in PostgresSQL with NodeJS (Performance Numbers)
- Asynchronous vs Multithreading and Multiprocessing Programming (The Main Difference)
- Horizontal vs Vertical Database Partitioning
- Database Partitioning Crash Course (with Postgres)
- Database Sharding Crash Course (with Postgres examples)
- Can you get Eventual Consistency in Relational Databases?
- How to Avoid Double Booking and Race Conditions in Online Web Applications
- RabbitMQ Crash Course
- Apache Kafka Crash Course
- Microservices Explained and their Pros & Cons
- When Designing a Backend System Minimize the “What If” Questions
- Building a Multi-player Game with WebSockets
- DevTools Waterfall Deep Dive - Diagnose Your Backend and Improve the Frontend User Experience
- SELECT COUNT(*) is Slow, Estimate it Instead (with Example in Node JS and Postgres)
- When to Build a Stateless vs Stateful Back-ends using the right protocols (UDP, HTTP, TCP, QUIC)
- Why you Shouldn't Implement Features Because They are Easy - Backend Engineering
- Index Scan vs Index Only Scan on Database Systems (with Postgres)
- SELECT COUNT (*) can impact your Backend Application Performance, here is why
- Combining Database Indexes for Better Performance in Your Backend Applications (with PostgreSQL)
- 2 Hours RabbitMQ Course with NodeJS, Pros & Cons, Cloud RMQ, RMQ vs Kafka, RMQ in Wireshark & MORE!
- Uber’s new Backend Architecture for Processing Payments
- Traefik Crash Course (Without docker)
- Envoy Proxy Crash Course, Architecture, L7 & L4 Proxying, HTTP/2, Enabling TLS 1.2/1.3 and more
- don’t use “offset” in your SQL
- Is EventStoreDB the First Native gRPC Database?
- The 2021 Slack Outage - Detailed analysis of what happened to Slack on Jan 4th 2021
- How do i learn new tech as a software engineer
- Load Balance multiple RTMP Servers to Horizontally Scale Streaming (Node Media Server and HAProxy)
- CQRS is probably the cause of the Microservices madness
- How timeouts can make or break your Backend load balancers
- Watch out before Adding Indexes to Your Table, Your Database Optimizer Might not Use them
- Optimizing Communication and Networking in Database Systems - The Backend Engineering Show
- Long Polling and how it differs from Push, Poll and SSE - The Backend Engineering Show
- Postgres Explain Explained - How Databases Prepare Optimal Query Plans to Execute SQL
- B-tree vs B+ tree in Database Systems
- Should you go with an Optimistic or Pessimistic Concurrency Control Database?
- The Journey of an HTTP request to the Backend | Backend Engineering Show
- Low code | The Backend Engineering Show
- Multi-tenancy architecture | The Backend Engineering Show
- First port your computer hits
- When do you use threads?