Arquitetura Corporativa para Todos

Artigo / Post

Serviços resiliente : Eficiência com pouco código em .NET 8 e .NET9

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.

Compatilhe

0 0 votos
Avaliação Global
0 Comentários
Feedbacks embutidos
Ver todos os comentários
Categorias

Sobre o Autor

Picture of Fernando Cerqueira

Fernando Cerqueira

Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável. Como arquiteto sênior, aproveito meus mais de 20 anos de experiência em arquitetura e desenvolvimento de software para projetar e implementar soluções baseadas em nuvem que ajudam os clientes a transformar seus negócios com tecnologia.

Outros Posts

Categorias

Disagree and Commit: A arte de inovar em ambientes divergentes.

Em 1997, Jeff Bezos introduziu o princípio ‘Disagree and Commit‘ na Amazon. Este princípio, que pode ser traduzido como ‘Discorde e Comprometa-se’, permitindo inovação rápida apesar das discordâncias internas. Este princípio também pode ser útil onde a inovação é frequentemente desafiada por restrições legais e normativas, como o setor financeiro,

Os 13 fatores de desenvolvimento de software!

Os 13 fatores de desenvolvimento de software! Não, você não leu errado😁. São 13 mesmo, adicionei um fator extra 😮 , mas antes de falar dele, vamos relembrar os **12** fatores que ajudam a criar aplicações mais resilientes, portáveis e fáceis de gerenciar: Código Base : Uma única base de

Adotar classes seladas em .NET por padrão é uma ótima escolha

Adotar classes seladas em .NET por padrão é uma ótima escolha. Saiba por que! Em .net todas as classes que são criadas por padrão (template), permitem herança. Esta opção padrão deixa mais flexível qualquer implementação por herança, mas sendo sincero, acredito não ser esta a melhor opção : Uma classe

Arquitetura NÃO é somente sobre tecnologia é essencialmente sobre pessoas!

Melvin Conway foi um cientista da computação e programador. Por volta de 1968, em um de seus estudos (“How Do Committees Invent?”) na sua conclusão escreveu: “Ao desenhar seus sistemas, as organizações estão fadadas a produzir cópias de suas estruturas de comunicação.” Melvin Conway Isso na época (55 anos atrás!)

"Impor uma única escolha de complexidade acidental é um erro, pois assume que todos os problemas de negócio são mais bem resolvidos da mesma forma."

Fernando Cerqueira | Arquiteto Corporativo

Sua Reflexão

0
Adoraria saber sua opinião, comente.x