<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Retries on Brian Faust</title><link>https://vacua.dev/tags/retries/</link><description>Recent content in Retries on Brian Faust</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="https://vacua.dev/tags/retries/rss.xml" rel="self" type="application/rss+xml"/><item><title>Retry Budgets Multiply Across Layers</title><link>https://vacua.dev/thoughts/retry-budgets-multiply-across-layers/</link><pubDate>Wed, 01 Aug 2018 00:00:00 +0000</pubDate><guid>https://vacua.dev/thoughts/retry-budgets-multiply-across-layers/</guid><description>&lt;p&gt;An HTTP connector allows three attempts. The queue job calling it also allows
three attempts.&lt;/p&gt;
&lt;p&gt;When the remote service keeps failing, the job does not make three calls. It
makes nine:&lt;/p&gt;
&lt;figure class="code-figure"&gt;
 &lt;div class="code-block" data-copy-code&gt;
 &lt;button class="copy-code" type="button" aria-label="Copy code"&gt;copy&lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;job attempt 1 -&amp;gt; connector calls 1, 2, 3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;job attempt 2 -&amp;gt; connector calls 4, 5, 6
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;job attempt 3 -&amp;gt; connector calls 7, 8, 9&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;Both settings look modest in isolation. The remote system receives their
product.&lt;/p&gt;</description></item><item><title>Retries Can Multiply the Original Failure</title><link>https://vacua.dev/thoughts/retries-can-multiply-the-original-failure/</link><pubDate>Mon, 01 Aug 2016 00:00:00 +0000</pubDate><guid>https://vacua.dev/thoughts/retries-can-multiply-the-original-failure/</guid><description>&lt;p&gt;Every failed job went back to the queue for another attempt 60 seconds later.
There was no terminal condition and no meaningful failure classification. A
malformed request received the same treatment as a short provider outage.&lt;/p&gt;
&lt;p&gt;During long outages, roughly 50,000 jobs could sit in the system and keep
trying for days. The queue backend filled, workers spent their time reproducing
known failures, and the original dependency problem became sustained load on
our own application.&lt;/p&gt;</description></item></channel></rss>