.NET 5 + Polly: melhorando o tratamento de falhas em exemplos práticos

Renato Groffe
2 min readDec 14, 2020

--

Venho abordando o uso da biblioteca Polly para melhorar o tratamento de falhas em .NET há algum tempo, inclusive com diversos artigos publicados a respeito:

ASP.NET Core + Chaos Engineering: simulação de falhas com Polly + Simmy

.NET Core + Polly: Tratamento de Falhas, Chaos Engineering — exemplos de implementação

.NET Core + JWT + Polly + Refit: consumindo APIs seguras com simplicidade e resiliência

ASP.NET Core + Polly: simplificando o tratamento de falhas em projetos Web

.NET Core + Polly + JWT: tratando de forma resiliente a expiração de tokens

Polly: resiliência e maior estabilidade em aplicações .NET

Neste novo post dou continuidade a este trabalho, trazendo exemplos de utilização desta biblioteca em projetos criados com o .NET 5:

.NET 5 + Refit + Consumo de API REST de contagem de acessos + JWT + Código Resiliente com Polly

ASP.NET Core 5 + Razor Pages + HTTPClient + Extension Method GetFromJsonAsync + Consumo de API REST + Código Resiliente com Polly

ASP.NET Core 5 + Razor Pages + HTTPClient + Consumo de API REST + Código Resiliente com Polly + Simulação de caos com Simmy

Tais projetos envolvem o consumo de APIs REST disponibilizadas através dos seguintes repositórios do GitHub:

ASP.NET Core 5 + REST API + Contagem de Acessos + JWT

ASP.NET Core 5 + REST API Contagem de Acessos + Swagger + Azure Application Insights + JSON Console Logger + Docker + Linux

O uso de Polly foi inclusive tema de uma live do Canal .NET (clique neste link para assistir no YouTube), em que diversos cenários e patterns de tratamento de falhas foram abordados:

Importante destacar que o ASP.NET Core conta com uma extensão que facilita o uso de Polly. Trata-se do package Microsoft.Extensions.Http.Polly.

Há ainda a possibilidade de implementações envolvendo simulações de falhas. Neste caso será utilizada a biblioteca Simmy, outro projeto mantido pelo time que concebeu o Polly e que estende as capacidades deste projeto ao trazer conceitos de Chaos Engineering.

No exemplo indicado por este artigo e que combina o uso de Polly + Simmy foram adicionados estes 2 pacotes:

Com a criação das Policies retryPolicy e chaosPolicy (Simmy) teremos o tratamento de falhas com retentativas e a simulação de erros ao invocar uma API REST:

Tal exemplo foi descrito anteriormente em um artigo relacionado no início deste post e que pode ser acessado aqui.

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

No responses yet