Rainer Stropek

Leveraging Server-Sent Events (SSE) for Efficient Data Streaming in UI Development

How does ChatGPT stream responses so quickly? The answer is a classic web technology that's making a major comeback.

Leveraging Server-Sent Events (SSE) for Efficient Data Streaming in UI Development
#1about 6 minutes

The core problem of long-running HTTP requests

A simple demo illustrates poor user experience when a backend operation takes several seconds to complete, leaving the UI unresponsive.

#2about 6 minutes

Manually streaming data with HTTP chunks

Learn how to send partial responses from a Node.js server using `response.write` and process them on the client with `ReadableStream` and `TextDecoder`.

#3about 7 minutes

Introducing the Server-Sent Events protocol

The SSE protocol simplifies streaming by using a `data:` prefix and the browser's built-in `EventSource` API, which also handles automatic retries.

#4about 4 minutes

Using named events for structured messages

The SSE protocol supports sending named events using the `event:` key, allowing for more structured communication handled by specific event listeners on the client.

#5about 5 minutes

Ensuring reliable delivery with message IDs

Implement robust streaming by using the `id:` field in SSE messages, which enables the client to automatically send a `Last-Event-ID` header upon reconnecting.

#6about 7 minutes

Why SSE is relevant again because of OpenAI

OpenAI's streaming API uses Server-Sent Events extensively, leading to a resurgence of the technology for building real-time AI applications.

#7about 6 minutes

Building a streaming client for the OpenAI API

A practical demo shows how to use the OpenAI SDK, which abstracts SSE into a `for await` loop, and then stream the results from your server to the client using SSE.

#8about 12 minutes

Q&A on SSE implementation and best practices

Discussion covers topics like connection timeouts, keep-alive messages, server scalability for many connections, and use cases beyond text streaming.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.

Data Engineer

SSE plc
Renfrew, United Kingdom

35-52K
Azure
DevOps
Data analysis
Machine Learning
+2