Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Realtime Backend System Design with WebSockets
Rating: 4.4 out of 5(170 ratings)
3,821 students

Realtime Backend System Design with WebSockets

Advanced WebSockets internals for Building scalable Real-Time bidirectional gaming and chatting backends
Created byHussein Nasser
Last updated 9/2025
English

What you'll learn

  • System Design for Real-Time backend scaling
  • The Internals of WebSockets
  • How WebSockets Work
  • WebSockets on Secure TLS
  • Scaling WebSockets with Layer 4 Proxying
  • Scaling WebSockets with Layer 7 Proxying
  • WebSockets on HTTP/2 and HTTP/3
  • Building a Real-time Group Chatting App (IO Intensive)
  • Building a Real-time Game App (CPU Intensive)

Course content

7 sections31 lectures11h 30m total length
  • Welcome8:46
  • Who is this course for?5:03

    Backend Engineers who are interested in leveling up their skills for real-time applications.

  • Course Outline13:07
  • Course Data0:36

    You can find the slides, referenced papers and source code under the resources of this lecture

Requirements

  • Fundamentals of Backend Engineering

Description

Engineering efficient and scalable backends is such an enjoyable design activity. Understanding the frontend workflows, designing the APIs, picking the right protocols and databases for the task, and determining the communication patterns—whether the workload is CPU- or I/O-intensive—are all part of the fun.

However, what’s truly more challenging is designing real-time backend applications that support unfettered and ad-hoc bidirectional communication. The workloads of gaming, chatting, and even mission-critical real-time applications are unique in that they require a “push” nature to function effectively.

I spent a few months designing this course, and I chose the WebSockets protocol as the foundation for this work. WebSockets is by far the most widely available bidirectional protocol, supported across all clients—from browsers and command-line apps to runtimes like Node and Bun, and even other languages like C and Go.

While there is the newer WebTransport protocol, it isn’t yet as widely supported or battle-tested as WebSockets. Perhaps I’ll refresh this course in a few years when WebTransport matures.

This course is divided into three main sections:

1. WebSockets Internals – A deep dive into the inner workings of the protocol: the handshake, keepalive mechanisms, frame headers, and how it behaves over TLS. We’ll also discuss limitations—because I believe understanding limitations helps us build better applications. Each lecture will include a coding session and a quiz at the end of the section.

2. Scaling WebSockets – Taking your WebSocket knowledge to the maximum: how to scale this protocol over HTTP/1.1, HTTP/2, and HTTP/3. We’ll cover implementation with proxies in both stream mode (Layer 4) and application mode (Layer 7), along with their pros and cons. Each lecture will include a coding session and a quiz at the end of the section.

3. Building Real-Time System Designs – Putting everything into practice by designing two systems: an I/O-intensive chat system and a CPU-intensive game. I’ll propose multiple designs for each and choose one to implement.


Prerequisite: Fundamentals of Backend Engineering.

I hope you enjoy the course.

Who this course is for:

  • Intermediate Backend Engineers wanting to build scalable backends