Real-Time Systems

Real-Time Communication: Delivering Data in Sub-Milliseconds

In traditional web applications, the client initiates every request, and the server responds. Real-time systems invert this model, allowing the server to "push" data to the client the instant an event occurs. This is the foundation of live chat, collaborative editing, and real-time dashboards.


1. Server-Sent Events (SSE)

SSE is a standard that allows servers to push data to web pages over a single, long-lived HTTP connection.

  • How it works: The client opens a connection to the server, and the server keeps that connection open, streaming data as a sequence of events.

  • Key Characteristic: It is unidirectional (Server $\rightarrow$ Client).

  • Best Use Case: Live news feeds, stock tickers, or notification systems where the client only needs to receive updates, not send them back frequently.


2. WebSockets

WebSockets provide a full-duplex, bidirectional communication channel over a single, long-lived TCP connection.

  • How it works: The client and server perform a "handshake" to upgrade an HTTP connection to a WebSocket connection. Once established, both sides can send messages to each other simultaneously without the overhead of HTTP headers.

  • Key Characteristic: Bidirectional. It is significantly more efficient than constant HTTP polling.

  • Best Use Case: Real-time chat applications, collaborative document editing (like Google Docs), and multi-player gaming.


3. WebRTC (Web Real-Time Communication)

WebRTC is the standard for high-performance, peer-to-peer (P2P) communication, bypassing the server entirely for the media stream.

  • How it works: It uses complex protocols like STUN/TURN servers to help two browsers find each other's IP addresses and "punch" through firewalls to establish a direct connection.

  • Key Characteristic: Low Latency. Because data goes directly from Client A to Client B (instead of routing through your server), it is the only viable way to stream high-quality audio and video.

  • Best Use Case: Video conferencing (Zoom-style), VoIP, and real-time screen sharing.


4. Real-Time Messaging

Real-time messaging at scale is not just about the protocol; it is about infrastructure.

  • Pub/Sub Integration: To handle thousands of users in a chat room, you need an intermediary. A publisher (e.g., User A) sends a message to a Redis Pub/Sub or Kafka topic; the backend service then pushes that message to all connected WebSocket clients subscribed to that channel.

  • State Management: You must track which server a specific user is connected to (using a "Connection Registry" in a database like Redis) so that when a message arrives, your system knows exactly which server needs to push the message to that user's device.


Real-Time Communication Matrix


ProtocolDirectionLatencyComplexityPrimary Use Case
SSEServer $\rightarrow$ ClientLowLowLive feeds, dashboards.
WebSocketsBidirectionalVery LowModerateChat, gaming, collaboration.
WebRTCPeer-to-PeerUltra-LowHighVideo/Audio conferencing.
Real-Time Systems in System Architecture · advance | System Architecture | Careeroza