
#204 Resilience Engineering: Timeouts, Jitter, Backoff & andere Systemretter
Engineering Kiosk
Intro
Dieses Kapitel behandelt die Rolle von Timeouts und Fehlertoleranz im Resilience Engineering. Es wird erklärt, wie grundlegende Einstellungen für Software-Architekturen entscheidend sind und warum diese Themen oft komplexer sind, als sie scheinen.
Resilience Engineering: Timeouts, Retry, (Exponential) backoff und Jitter
Modernes Resilience Engineering beginnt bei scheinbar banalen Parametern, die oft generisch abgenickt werden – und entscheidet damit über den Unterschied zwischen „kurzer Störung“ und „großflächigem Ausfall mit Nachwirkungen“.
In dieser Episode packen wir das Thema Timeout & Retry von Grund auf an: Wir sprechen über Connection, Read und Idle-Timeouts, erklären, warum 0,1 % Ausfallrate maßgeblich für dein Softwaredesign ist, was Retry-Storms und das Thundering Herd Problem ist und warum dieses “DevOps” bei dem finden des richtigen Timeout-Values eine wichtige Rolle spielt.
On top gibt’s einen Hands-on Deep Dive zu Circuit Breaker, Token Buckets, Exponential Backoff und Jitter – inklusive Tool-Tipps von Open Telemetry über Toxiproxy bis hin zu Resilience-Libraries für Python, Go, .NET & Co.
Bonus: Warum Wolfgang nun anders über so simple Dinge wie Timeouts nachdenkt.
Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners
Das schnelle Feedback zur Episode:
Anregungen, Gedanken, Themen und Wünsche
Dein Feedback zählt! Erreiche uns über einen der folgenden Kanäle …
- EngKiosk Community: https://engineeringkiosk.dev/join-discord
- LinkedIn: https://www.linkedin.com/company/engineering-kiosk/
- Email: stehtisch@engineeringkiosk.dev
- Mastodon: https://podcasts.social/@engkiosk
- Bluesky: https://bsky.app/profile/engineeringkiosk.bsky.social
- Instagram: https://www.instagram.com/engineeringkiosk/
Unterstütze den Engineering Kiosk
Wenn du uns etwas Gutes tun möchtest … Kaffee schmeckt uns immer
- Buy us a coffee: https://engineeringkiosk.dev/kaffee
Links
- toxiproxy - A TCP proxy to simulate network and system conditions for chaos and resiliency testing: https://github.com/Shopify/toxiproxy
- Tenacity (Python): https://github.com/jd/tenacity
- retrying (Python): https://github.com/groodt/retrying
- Resilience4j (Java): https://github.com/resilience4j/resilience4j
- Netflix / Hystrix (Java): https://github.com/Netflix/Hystrix
- Polly (.net): https://github.com/App-vNext/Polly
- Hashicorp / retryablehttp (Go): https://github.com/hashicorp/go-retryablehttp
- Amazon Builders Library: Timeouts, retries, and backoff with jitter (Architecture | Level 200): https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/
- AWS Architecture Blog - Exponential Backoff And Jitter: https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/
Sprungmarken
(00:00:00) Resilience Engineering - Timeouts, Retry, (Exponential) backoff und Jitter
(00:03:28) Info/Werbung
(00:04:28) Resilience Engineering - Timeouts, Retry, (Exponential) backoff und Jitter
(00:16:41) Timeouts: Was ist das? Welche gibt es? Was sind gute Werte?
(00:29:16) Context Deadlines
(00:33:22) Reloads, (egoistische) Retries, partielle und transienter
(00:40:31) Exponentielle Backoffs, Circuit Breaker und das Amazon Token Bucket Retry System
(00:49:49) Retry Storm und Jitter-Strategien
(00:52:51) Fault Tolerance Libraries und toxiproxy
Hosts
- Wolfgang Gassler (https://gassler.dev)
- Andy Grunwald (https://andygrunwald.com/)
Community
Diskutiere mit uns und vielen anderen Tech-Spezialist⋅innen in unserer Engineering Kiosk Community unter https://engineeringkiosk.dev/join-discord