Arquitetura de API - chamadas síncronas, assíncronas e paralelas

May 07 2023
Um curso intensivo com infográficos sobre o que significam e quando usar cada um. Histórico Um aspecto crítico do desenvolvimento da API REST é a maneira como os clientes fazem solicitações e recebem respostas.

Um curso intensivo com infográficos sobre o que significam e quando usar cada um.

Fundo

Um aspecto crítico do desenvolvimento da API REST é a maneira como os clientes fazem solicitações e recebem respostas.

Neste segmento, abordarei os 3 principais métodos de fazer solicitações em APIs REST - chamadas síncronas, assíncronas e paralelas.

Descreverei os prós e contras de cada método e quando usá-los para obter ganhos máximos de desempenho.

Leitura Relacionada

Escrevi extensivamente sobre práticas recomendadas de design, desempenho, segurança, controle de versão e diagramação de API. Confira minha série no link abaixo para saber mais!

Chamadas síncronas

As chamadas síncronas são o método mais comum de fazer solicitações em uma API REST.

Em chamadas síncronas, o aplicativo cliente envia uma solicitação ao servidor e aguarda uma resposta antes de prosseguir para a próxima etapa. Isso significa que o aplicativo cliente é bloqueado até receber uma resposta do servidor.

Prós:

  • Chamadas síncronas são fáceis de implementar e entender.
  • Eles são úteis para pequenas aplicações com baixo volume de tráfego .
  • As chamadas síncronas podem ser lentas e ineficientes, principalmente para grandes aplicativos com altos volumes de tráfego.
  • Eles podem causar problemas de desempenho se o servidor demorar muito para responder.
  • Use chamadas síncronas quando o aplicativo tiver baixo volume de tráfego ou for relativamente pequeno.
  • Eles também são úteis para aplicativos em que o cliente precisa aguardar uma resposta antes de prosseguir para a próxima etapa.
Fonte: Abdul R. Wahab

Chamadas assíncronas

As chamadas assíncronas são um método de fazer solicitações em que o aplicativo cliente envia uma solicitação ao servidor e continua a executar outras tarefas enquanto aguarda uma resposta.

Isso significa que o aplicativo cliente não é bloqueado enquanto aguarda uma resposta do servidor.

Prós:

  • As chamadas assíncronas são mais rápidas e eficientes do que as chamadas síncronas.
  • Eles são úteis para grandes aplicações com altos volumes de tráfego.
  • As chamadas assíncronas são mais complexas de implementar do que as chamadas síncronas.
  • Eles podem ser difíceis de depurar se houver erros na solicitação ou na resposta.
  • Use chamadas assíncronas quando o aplicativo tiver grandes volumes de tráfego ou for relativamente grande.
  • Eles também são úteis para aplicativos em que o cliente não precisa esperar por uma resposta antes de prosseguir para a próxima etapa.
Fonte: Abdul R. Wahab

Chamadas Paralelas

As chamadas paralelas são um método de fazer várias solicitações simultaneamente .

Em chamadas paralelas, o aplicativo cliente envia várias solicitações ao servidor ao mesmo tempo e o servidor responde a cada solicitação individualmente.

Prós:

  • As chamadas paralelas são mais rápidas e eficientes do que as chamadas sequenciais.
  • Eles são úteis para grandes aplicações com altos volumes de tráfego.
  • Chamadas paralelas podem causar problemas de desempenho se o servidor não for projetado para lidar com várias solicitações simultaneamente.
  • Eles também podem causar problemas se houver dependências entre as solicitações.
  • Use chamadas paralelas quando o aplicativo tiver grandes volumes de tráfego ou for relativamente grande.
  • Eles também são úteis para aplicações em que o cliente precisa fazer várias solicitações simultaneamente.
Fonte: Abdul R. Wahab

Considerações finais

Então, basicamente, a escolha de fazer chamadas síncronas, assíncronas ou paralelas em uma API depende das necessidades específicas do aplicativo.

Embora as chamadas síncronas sejam fáceis de implementar, elas podem não ser adequadas para aplicativos de grande escala que exigem comunicação rápida e eficiente entre o cliente e o servidor. Chamadas assíncronas e paralelas oferecem melhor desempenho e escalabilidade, mas exigem uma implementação mais avançada e podem ter seu próprio conjunto de desafios.

É fundamental pesar os prós e contras de cada método e considerar o volume de tráfego, o tamanho da aplicação e o tipo de requisições a serem feitas antes de escolher uma determinada abordagem.

Ao escolher o método apropriado, as equipes de engenharia podem garantir que sua API forneça desempenho, escalabilidade e capacidade de resposta ideais para os usuários finais.