Engineering Kiosk

#204 Resilience Engineering: Timeouts, Jitter, Backoff & andere Systemretter


Listen Later

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:

👍 (top) 👎 (geht so)


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: [email protected]
  • 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

...more
View all episodesView all episodes
Download on the App Store

Engineering KioskBy Wolfgang Gassler, Andy Grunwald