O processamento assíncrono não exige do cliente a espera por uma resposta depois que uma solicitação é feita e pode continuar outras formas de processamento. Esse processo é chamado de não bloqueador porque o thread de execução do cliente não é bloqueado após a solicitação. Isso permite que os sistemas sejam melhor dimensionados, pois mais trabalho pode ser feito em um determinado período de tempo.
- Solicitações síncronas bloqueiam o encadeamento de execução do cliente, fazendo com que o atendimento de uma dependa do término da anterior. Por outro lado, solicitações assíncronas não bloqueiam e permitem que mais trabalho seja feito em um determinado período de tempo.
- A natureza de bloqueio das solicitações síncronas faz com que o cliente consuma mais recursos, pois o thread de execução é bloqueado durante o período de espera. As solicitações assíncronas liberam imediatamente o thread de execução para executar mais funções sem ter que esperar por uma resposta.
- Como não há como determinar quanto tempo levará uma solicitação, é difícil criar aplicativos responsivos com processamento síncrono. Quanto mais operações de bloqueio forem executados, mais lenta a aplicação se tornará. Com o processamento assíncrono, o tempo de resposta é rápido, pois o cliente não precisa esperar pela solicitação.
- A tolerância a falhas do processamento assíncrono é maior do que a do processamento síncrono, pois é fácil construir um sistema de repetição quando uma solicitação falha e o cliente não é retido por quantas vezes a solicitação é repetida ou quanto tempo leva.
- O processamento assíncrono permite execução paralela de solicitações do cliente, enquanto as solicitações de processamento síncrono só podem ser processadas sequencialmente.
- Requisições com duração acima de 10 segundos deverão deverá fazer uso de fila de processamento , executada de forma assíncrona.