Problem
In beinahe jeder Software gibt es das Problem der vorübergehenden Fehler. Ein bekanntes Beispiel hierfür ist ein Service, der gerade nicht erreichbar ist. Strategien, wie man damit umgeht, gibt es einige z. B. Retry, Circuit Breaker, Timeout uvm. Setzt man diese Patterns durch eigene Implementierungen um, wird der Code meisten stark aufgebläht. Im schlimmsten Fall werden solche vorübergehenden Fehler bei der Implementierung schlicht vergessen.
Lösung
In den verschiedenen Sprachen werden mittlerweile einige Bibliotheken angeboten, mit welchem man die Fehlerbehandlungen und die verbundenen Patterns einfach umsetzen kann. Für .NET empfiehlt Microsoft die Bibliothek Polly und nutzt diese sogar in ihrer eigenen Dokumentation.
Beispiel
Die Implementierung der unterschiedlichen Patterns sieht bei Polly immer gleich aus. Zunächst wird angegeben, für welche Exception (optional auch mit Bedingung) die Strategie greifen soll. Ebenfalls besteht hier die Möglichkeit, das Ergebnis auszuwerten und als Trigger für z. B. den Retry zu nutzen. Anschließend muss man noch die Strategie angeben und schon ist man fertig.
Weiterführende Aspekte
- https://github.com/App-vNext/Polly
- https://docs.microsoft.com/de-de/dotnet/architecture/microservices/implement-resilient-applications/implement-http-call-retries-exponential-backoff-polly
- https://entwickler.de/reader/reading/windows-developer/7.2018/e6cd97dca58b2852f3cb4dec (Abo zum Lesen benötigt)
---
Autor: Patrick Hiesinger / Software Architect / Standort Leipzig
Lust, das nächste ToiletPaper zu schreiben? Jetzt bei jambit bewerben!