.NET 5 + Polly: melhorando o tratamento de falhas em exemplos práticos
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
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
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.