Streaming token a token: implementando SSE do backend ao componente
A percepção de velocidade em interfaces com IA vem do primeiro token, não do último.

Uma resposta que leva 8 segundos parece rápida se o primeiro token aparece em 300 ms. A mesma resposta entregue de uma vez parece travada.
O endpoint
export const POST = async ({ request }: { request: Request }) => {
const stream = new ReadableStream({
async start(controller) {
for await (const chunk of generate(await request.json())) {
controller.enqueue(new TextEncoder().encode(`data: ${chunk}\n\n`));
}
controller.close();
},
});
return new Response(stream, {
headers: { "Content-Type": "text/event-stream" },
});
};Consumo no cliente
Prefira fetch com ReadableStream a EventSource quando precisar enviar cabeçalhos e cancelar via AbortController.
Erros no meio do fluxo
- Envie um evento tipado de erro em vez de fechar a conexão em silêncio.
- Preserve o texto já recebido na tela.
- Ofereça retry que continue de onde parou quando possível.
Atualizado em 03 de ago. de 2026
Escrito por
Rafael NunesEngenheiro de plataforma
Trabalha com infraestrutura, observabilidade e automação de pipelines. Escreve tutoriais densos sobre operação de sistemas em produção.
Você também pode gostar

Guia prático de observabilidade no frontend moderno
Como instrumentar uma aplicação React em produção medindo o que importa para o usuário, não apenas o que é fácil de coletar.

Design system escalável: tokens antes de componentes
Como estruturar camadas de tokens — primitivos, semânticos e de componente — para que o sistema sobreviva a mudanças de marca.

Acessibilidade em interfaces generativas: o conteúdo que muda sozinho
Práticas concretas de acessibilidade para interfaces em que o conteúdo é gerado dinamicamente e muda durante a leitura.
Conteúdo bom direto na sua caixa de entrada
Receba novidades, análises e conteúdos selecionados toda terça-feira. Sem ruído, sem spam.
