Hello reader! Today I have learnt about server-side events and going to discuss it here.
Introduction
Assume you are using ChatGPT and sent a query to the LLM and it's makes you to wait for 5 seconds before printing the entire answer in a one-shot action like loading a webpage instead of the current sequential character printing pattern using streaming responses, will it be surprising, frustrating or at least makes you feel like waiting?
So, to prevent the user from feeling the pain of waiting most LLMs uses the sequential printing method.
Working
These are called Time Taking Processes (TTP), and this working is achieved by the server-sent events.
SSE is the standard for streaming data from the server to the client using HTTP.
Each event is a small text block with "fields" like data, event, id, and retry, separated by blank lines.
It looks like this:
data: {"name": "Portal Gun", "price": 999.99}
data: {"name": "Plumbus", "price": 32.99}
SSE is commonly used for AI chat streaming, live notifications, logs and observability, and other cases where the server pushes updates to the client.
Before technologies like SSE became popular, applications often relied on short polling or long polling to receive updates from the server:
1. Short polling:
The client-initiates the request to the server and if the response is incomplete and will takes time to complete then the server will response with an immediate wait message and then the user will wait for some time(defined) before initiating the request again, continuing this process until the process's completed.
2. Long polling:
The client-initiated request is once processed and if not completed then the server will hold on to that request and check the same after a defined time when it also not completed during the second investigation then the server responses to the client as incomplete. The user will immediately reinitiate the same request as soon as they receive it and the same repeat until the process is completed or any termination event has been happened.
EVENT STREAM:
Processes that are continuous and ordered sequence of events that can be simple from creating pdf file to a much complex process like transactions between two banks. These are undertaken by establishing a communication channel between the server and the clients and maintaining the channel until the completion of the process.
Here's a fun-fact for you if you have read until here: HTTP requests are
stateless.
Bye guys! let's all have a great day of learning😊.
Top comments (2)
😇