Quanto maior as dependências remotas em seus serviços , maiores são as probabilidades de falhas. Essas solicitações podem eventualmente falhar devido a problemas de rede ou outros fatores de comunicação.
Se não forem tratadas adequadamente, podem impactar a disponibilidade dos serviços , inclusive podendo gerar um efeito cascata em diversos serviços.
Construir aplicativos resiliente é um requisito fundamental para o desenvolvimento de serviços / domínios distribuídos.
As chamadas remotas a outros serviços normalmente dependem do protocolo HTTP para fazer tais solicitações.
Várias estratégias para resiliência sobre o protocolo http podem ser usadas para reforçar este conceito em seus serviços :
- 👉 Definir timeout nas solicitações
- 👉 Definir políticas de tentativas em falhas temporárias
- 👉 Definir políticas de Circuit-breaker
- 👉 Definir caminhos alternativos
- 👉 Combinações das alternativas acima
🚀 Com o .NET 8 foi lançado dois novos pacotes que permitem estratégias de resiliência customizadas ao pipeline HTTP:
- ▶ Microsoft.Extensions.Http.Resilience
- ▶ Microsoft.Extensions.Resilience
Foi feito um grande trabalho para atender aos mais diversos cenários e necessidades fornecendo 3 pontos de extensibilidade (IHttpClientBuilder) para um pipeline de resiliência:
💡 AddStandardResilienceHandler : pipeline padrão adequado para a maioria dos cenários.
💡 AddStandardHedgingHandler : pipeline de cobertura padrão , que oferece suporte a solicitações para vários endpoints.
💡 AddResilienceHandler : permite a personalização de estratégias de resiliência.
Falar de resiliência em .NET, não se pode deixar de mencionar a biblioteca Polly . A Microsoft ajudou a desenvolver a nova versão Polly v8, então pode-se esperar integrações mais robusta e performáticas sentido.
❓ Você já está utilizando ou conhecia estes pacotes ? Os exemplos certamente vão deixar suas aplicações habilitadas para cenários de resiliência com pouco esforço de código , fácil manutenção e continuidade de evolução
https://learn.microsoft.com/pt-br/dotnet/core/resilience/http-resilience?tabs=dotnet-cli/
https://devblogs.microsoft.com/dotnet/building-resilient-cloud-services-with-dotnet-8/
Tenham um excelente dia! Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável.






