A pergunta útil é o que acontece depois que uma atualização é perdida. Um transporte pode mover mensagens rapidamente e ainda assim deixar você com um painel local incompleto. Escolha primeiro o contrato de payload e recuperação, depois o transporte que consegue operá-lo dentro do seu orçamento.

Compare os contratos de entrega

Modelo Forma típica de integração O que você precisa estabelecer
Polling REST Solicitar um snapshot ou as mudanças em um intervalo Escopo do snapshot, expiração do cursor, custo da requisição, limites de taxa e como as exclusões são representadas
Server-sent events Manter um stream de eventos HTTP aberto e consumir mensagens Suporte a replay, identificadores de evento, comportamento de heartbeat, autenticação e ressincronização
WebSocket Abrir uma conexão e trocar mensagens de aplicação Protocolo de assinatura, confirmações, números de sequência, backpressure e recuperação

O HTTP define a semântica de requisição e resposta; REST é um estilo arquitetural, não uma garantia de completude de snapshot. O SSE define um stream de eventos em texto e o comportamento do EventSource no navegador, incluindo mecanismos de reconexão. O WebSocket permite comunicação bidirecional. Nenhum desses padrões estabelece a cobertura de atualizações ou a garantia de replay de um serviço específico. Semântica HTTP, padrão SSE, padrão WebSockets.

Entenda o que o polling adiciona

Suponha que você faça polling a cada dez segundos e uma mudança fique disponível logo depois de um poll. Sua próxima requisição pode não vê-la por quase dez segundos, antes de somar o tempo da requisição e o atraso upstream. Sob a suposição deliberadamente simplificada de que as mudanças chegam uniformemente entre polls perfeitamente regulares, o atraso médio de detecção introduzido pelo polling é metade do intervalo: cinco segundos.

Esse cálculo é um modelo de planejamento, não uma medição do serviço. Pausas do agendador, requisições sequenciais de vários esportes, comportamento de cache e novas tentativas mudam o resultado. O polling também não consegue recuperar cada preço intermediário se o serviço retornar apenas o snapshot mais recente. Um valor pode mudar duas vezes entre polls e terminar onde começou.

REST costuma ser um ponto de partida útil quando a aplicação precisa de snapshots periódicos, a simplicidade do transporte importa e o orçamento de requisições sustenta a cadência exigida. Modele o volume de requisições antes de aumentar a frequência.

O streaming move o trabalho para a gestão de estado

Um stream pode entregar atualizações sem esperar seu próximo poll agendado. Você ainda precisa saber se cada mensagem é um snapshot completo, um upsert, uma exclusão ou um alerta disparado por limiar. Um feed de alertas de queda de odds não deve ser tratado como um feed completo de mudanças de mercado, a menos que o serviço o defina expressamente assim.

Para uma exibição somente leitura, o SSE pode ser uma boa opção quando eventos do servidor para o cliente bastam e o backend o suporta. Uma conexão EventSource do navegador tem sua própria API de credenciais e reconexão; não presuma que um cliente do lado do servidor pode ser substituído pelo EventSource do navegador mantendo cabeçalhos secretos personalizados. Coloque as credenciais em um backend controlado. Padrão SSE.

O WebSocket é útil quando o contrato inclui assinaturas dinâmicas ou outras mensagens do cliente. O nome do transporte por si só não significa que as mensagens sejam intercambiáveis entre serviços. Trate a gramática de assinatura, os identificadores de mercado e a negociação de versão como parte da API.

Projete o caminho de reconexão antes do caminho feliz

O que segue é uma lista de verificação de projeto de aplicação, não um protocolo proprietário não documentado:

  1. Obtenha um snapshot e um limite ou cursor documentado para esse snapshot.
  2. Aplique as mudanças posteriores no escopo de ordenação definido pelo serviço.
  3. Rejeite duplicatas sem perder atualizações legítimas.
  4. Detecte uma sequência ausente ou um cursor expirado onde o contrato tornar isso possível.
  5. Marque o estado exibido como obsoleto enquanto se recupera.
  6. Faça replay a partir de um cursor suportado ou substitua o estado por um novo snapshot completo.

Se um snapshot e um stream não puderem ser unidos em um limite documentado, pode haver uma lacuna entre eles. Explique essa limitação em vez de alegar sincronização sem perdas. O mecanismo de identificador do último evento do EventSource só é útil quando o servidor também implementa um contrato de replay compatível.

Limite a fila em memória. Decida se consumidores lentos podem pular atualizações intermediárias e manter o preço mais recente, ou se cada mudança precisa ser registrada de forma durável. São produtos diferentes, com necessidades de armazenamento e recuperação diferentes.

Mantenha quatro medições separadas

Meça separadamente o tempo de ida e volta da requisição, a cadência observada de atualizações, o frescor da fonte até o cliente e a recuperação da conexão. Uma latência REST baixa mede a rapidez com que uma requisição foi concluída. Ela não diz quando o preço da fonte mudou pela última vez. Um stream estável pode carregar dados antigos; um snapshot HTTP pode conter dados atuais.

Use nossa metodologia de benchmark para definir relógios e correspondência antes de comparar números. Para feeds relacionados à Pinnacle, o guia de normalização separa a identidade da fonte da escolha de transporte.

Para o lado operacional de dois desses transportes, o guia de configuração do SSE no pnclPULSE cobre como manter o stream de quedas aberto e reconectá-lo, e a página do complemento WebSocket no pnclODDS cobre o que o feed bruto custa e o que ele não reenvia.

Fontes 3 referências

Documentação primária usada neste guia. As datas de verificação referem-se à revisão da fonte.

  1. RFC 9110: semântica HTTPVerificado em 26 de set de 2026
  2. WHATWG HTML: server-sent eventsVerificado em 26 de set de 2026
  3. Padrão WebSockets da WHATWGVerificado em 26 de set de 2026