No post anterior, falamos do fluxo síncrono: pedir e responder, na hora. Mas existe um segundo tipo de fluxo, o assíncrono, ou seja, o não síncrono. Nesse cenário, não é possível responder imediatamente a uma solicitação, por dois motivos:
- porque ela depende de algum processo demorado, e o servidor precisa esperar ocioso por uma resposta externa;
- ou porque o próprio trabalho de transformar a solicitação em resposta é pesado demais para a CPU processar de imediato — ela não fica ociosa, mas demora para concluir a tarefa.
A CPU trabalha na casa dos bilhões de cálculos por segundo, e, mesmo assim, pode levar vários segundos inteiros para concluir uma tarefa específica.
Quando o gargalo é espera (não processamento)
Se for o primeiro caso, vai demorar mesmo, não tem como acelerar por conta própria. Além de uma arquitetura de sistemas pensada para lidar com essa resposta que não é imediata, é necessária uma alternativa de UX (User Experience) que deixe claro para o usuário que ele vai precisar esperar por algo.
Quando o gargalo é processamento
Se for o segundo caso, você pode acelerar até o ponto em que esse tempo de espera fique aceitável para o usuário, e tratar o fluxo como síncrono normalmente. Ou pode assumir que vai demorar mesmo, e tratar como o cenário anterior, ajustando toda a experiência do usuário em torno dessa espera.
O limite que nenhum upgrade resolve
Se quiser acelerar, vai precisar de uma CPU maior, melhor, e mais cara. Mas, mesmo acelerando ao máximo, existe um limite que nenhum upgrade de hardware sozinho resolve: um núcleo de CPU só faz uma coisa de cada vez. Nesse tipo de processo, você não consegue atender dezenas de milhares de solicitações simultâneas, consegue atender uma de cada vez.
Como a Henceforth ajuda
Ajudamos a identificar, para cada fluxo da sua aplicação, se o gargalo é espera ou processamento, e a desenhar a arquitetura (e a experiência de usuário) certa para cada um dos dois casos, sem pagar por CPU que não vai resolver o problema.
Se sua aplicação tem fluxos que demoram e ninguém sabe dizer se dá pra acelerar ou se é preciso redesenhar a experiência, fale com a nossa equipe e vamos descobrir juntos.