up:: System Design related:: HTTP & REST, WebSockets, API Gateway

Webhooks & Polling

1. Webhooks (Inversão do Fluxo)

Diferente de uma API tradicional onde o cliente solicita dados, o Webhook inverte esse papel: o servidor envia os dados ao cliente assim que um evento específico ocorre.

  • Funcionamento: O cliente fornece uma URL previamente informada ao servidor. Quando ocorre uma mudança de status ou uma ação (como um pagamento concluído), o servidor realiza uma requisição síncrona para essa URL com as informações necessárias.
  • Vantagem: Elimina a necessidade de o cliente ficar consultando o servidor desnecessariamente, economizando recursos e reduzindo atrasos na detecção de mudanças.
  • Exemplo: Um sistema de e-commerce que fornece uma URL para um parceiro de pagamentos. O parceiro notifica o e-commerce assim que o Pix é pago, em vez de o e-commerce ter que perguntar repetidamente se o dinheiro caiu.

2. Polling (Sondagem)

O termo correto para essa técnica é Polling (e não “pooling”). As fontes descrevem o polling síncrono periódico, que é a base do que o mercado chama de Short Polling.

Short Polling (Sondagem Periódica)

  • Funcionamento: O cliente realiza solicitações periódicas ao servidor de tempos em tempos para verificar se há novas informações.
  • Problemas: Se as atualizações não forem frequentes, o sistema acaba desperdiçando recursos com requisições que não retornam nada novo e pode gerar atrasos na detecção de mudanças se o intervalo entre as consultas for muito longo.
  • Analogia: É como você ir até a sua caixa de correio várias vezes ao dia para checar se uma encomenda chegou.

Long Polling

Embora as fontes fornecidas não detalhem explicitamente o mecanismo técnico do Long Polling, elas mencionam o Polling como a técnica de “espera ativa” onde o cliente aguarda a resposta do servidor para manter-se atualizado. No Long Polling (informação externa para contexto adicional), o servidor mantém a conexão aberta até que tenha dados novos para enviar ou até que um timeout ocorra, reduzindo o número de requisições vazias comparado ao Short Polling.


📊 Comparação Analógica (O Livro no E-commerce)

As fontes utilizam uma analogia lúdica para diferenciar esses comportamentos:

  • Polling (Short Polling): Você compra um livro e, ansioso, vai ao portão checar a caixa de correio a cada 10 minutos. Você gasta energia (processamento) e tempo, mesmo que o carteiro ainda não tenha passado.
  • Webhook: Você compra o livro e continua suas tarefas normais. O entregador toca a sua campainha (o “evento”) e entrega o pacote em mãos. Você só age quando é notificado.

Resumo de Escolha

  • Use Polling: Quando o cliente não tem uma URL pública acessível para receber notificações ou quando o controle da frequência de consulta deve ser estritamente do cliente.
  • Use Webhooks: Para sistemas que precisam de atualizações contínuas e eficientes, evitando carga desnecessária tanto no cliente quanto no servidor.

Gostaria que eu criasse um relatório detalhado ou um conjunto de flashcards sobre esses padrões de comunicação para te ajudar a estudar?