<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Serverless | The .NET Blog</title><link>https://thedotnetblog.com/nl/tags/serverless/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>nl</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 21 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/nl/tags/serverless/index.xml" rel="self" type="application/rss+xml"/><item><title>Stop met het Bombarderen van een Worstelende Afhankelijkheid: Retry-patronen voor Azure Functions + Service Bus</title><link>https://thedotnetblog.com/nl/news/emiliano-montesdeoca/azure-functions-service-bus-exponential-backoff-circuit-breaker/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/news/emiliano-montesdeoca/azure-functions-service-bus-exponential-backoff-circuit-breaker/</guid><description>Exponential backoff en circuit breaker-patronen worden nu native ondersteund voor Service Bus-getriggerde Azure Functions — hier is hoe ze werken en waarom je beide wilt.</description><content:encoded>&lt;p&gt;Zo wordt een herstelbare fout een storing in een Functions-app: een afhankelijkheid begint te timeoutten, elke Functions-instantie probeert het onmiddellijk en oneindig opnieuw, de afhankelijkheid wordt gebombardeerd met honderden gelijktijdige mislukte verzoeken, en wat begon als een tijdelijke storing wordt een systeembrede backpressure-gebeurtenis.&lt;/p&gt;
&lt;p&gt;U kent dit verhaal waarschijnlijk. Azure Functions schaalt snel uit — dat is het hele punt. Maar &amp;ldquo;snel uitschalen&amp;rdquo; en &amp;ldquo;onmiddellijk opnieuw proberen&amp;rdquo; samen kunnen fouten dramatisch erger maken.&lt;/p&gt;
&lt;p&gt;Twee patronen helpen. Exponential backoff en circuit breaker. Beide worden nu native ondersteund voor Service Bus-getriggerde Azure Functions.&lt;/p&gt;
&lt;h2 id="twee-patronen-verschillende-rollen"&gt;Twee Patronen, Verschillende Rollen&lt;/h2&gt;
&lt;p&gt;Deze patronen zijn complementair, geen alternatieven:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exponential backoff&lt;/strong&gt; beantwoordt: &lt;em&gt;wanneer moet ik het opnieuw proberen?&lt;/em&gt;
Het vergroot de vertraging tussen nieuwe pogingen zodat een afhankelijkheid tijd heeft om te herstellen. Op berichtniveau, het tempo van retry-timing aanpassen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Circuit breaker&lt;/strong&gt; beantwoordt: &lt;em&gt;moet ik deze afhankelijkheid nu überhaupt aanroepen?&lt;/em&gt;
Het stopt herhaalde aanroepen naar een ongezonde afhankelijkheid nadat een faaldrempel is bereikt, en sondeert dan voorzichtig na een afkoelperiode. Op systeemniveau, het voorkomen van retry-stormen.&lt;/p&gt;
&lt;p&gt;U wilt beide. Backoff verwerkt de retry-pacing per bericht. Circuit breaker verwerkt geaggregeerde gezondheidsbeslissingen.&lt;/p&gt;
&lt;h2 id="waarom-dit-bijzonder-belangrijk-is-voor-service-bus"&gt;Waarom Dit Bijzonder Belangrijk is voor Service Bus&lt;/h2&gt;
&lt;p&gt;De wachtrij absorbeert burstverkeer, wat goed is. Maar zonder controles kan de wachtrij groeien terwijl workers kostbare rekenkracht blijven verspillen aan oproepen die zullen mislukken. Poisonberichten blijven langer actief dan ze zouden moeten. Hete partities of beperkte downstreamcapaciteit veroorzaken cascadeproblemen.&lt;/p&gt;
&lt;p&gt;Het veiligere ontwerp:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Tijdelijke fout detecteren&lt;/li&gt;
&lt;li&gt;De volgende poging vertragen met exponential backoff&lt;/li&gt;
&lt;li&gt;Stoppen met het aanroepen van de afhankelijkheid wanneer een faaldrempel is bereikt (circuit open)&lt;/li&gt;
&lt;li&gt;Voorzichtig hervatten na een afkoelperiode (circuit sonde)&lt;/li&gt;
&lt;li&gt;Niet-herstelbaar werk verplaatsen naar dead-letter of een quarantinepad&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="hoe-de-native-ondersteuning-eruitziet"&gt;Hoe de Native Ondersteuning Eruitziet&lt;/h2&gt;
&lt;p&gt;De nieuwe ondersteuning integreert met het bestaande Azure Functions-hostmodel — geen extra bibliotheken, geen aangepaste implementaties. De configuratie gaat in uw &lt;code&gt;host.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;extensions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;serviceBus&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;messageHandlerOptions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;maxRetryCount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;retryPolicy&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;exponentialBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;minBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;00:00:02&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;maxBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;00:05:00&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;maxRetryCount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;De circuit breaker-configuratie stelt de faaldrempel en het reset-interval in zodat ongezonde afhankelijkheden niet worden gebombardeerd tijdens herstel.&lt;/p&gt;
&lt;h2 id="talen-gedekt"&gt;Talen Gedekt&lt;/h2&gt;
&lt;p&gt;Dit is niet alleen voor .NET. De functie dekt dotnet, JavaScript, TypeScript en Python — de volledige set van talen die worden ondersteund door de Service Bus-trigger in Azure Functions.&lt;/p&gt;
&lt;h2 id="conclusie"&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Retry-patronen zijn niet opwindend om te configureren totdat de eerste keer een downstream-storing uw Functions het probleem laat verergeren in plaats van gracefully te degraderen. Ze proactief instellen is goedkoop. Ze tijdens een incident aanpassen is dat niet.&lt;/p&gt;
&lt;p&gt;Originele post: &lt;a href="https://devblogs.microsoft.com/azure-sdk/exponential-backoff-circuit-breaker-azure-functions/"&gt;Exponential backoff and circuit breaker for Service Bus-triggered Azure Functions&lt;/a&gt;&lt;/p&gt;</content:encoded></item></channel></rss>