<?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://wimdy.works/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://wimdy.works/tags/retries/rss.xml" rel="self" type="application/rss+xml"/><item><title>Retry Budgets Multiply Across Layers</title><link>https://wimdy.works/thoughts/retry-budgets-multiply-across-layers/</link><pubDate>Wed, 01 Aug 2018 00:00:00 +0000</pubDate><guid>https://wimdy.works/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;span class="sr-only" data-copy-status role="status" aria-live="polite"&gt;&lt;/span&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 still receives their
product. Three attempts multiplied by three attempts is nine calls, regardless
of how harmless each configuration file looks.&lt;/p&gt;</description></item><item><title>Retries Can Multiply the Original Failure</title><link>https://wimdy.works/thoughts/retries-can-multiply-the-original-failure/</link><pubDate>Mon, 01 Aug 2016 00:00:00 +0000</pubDate><guid>https://wimdy.works/thoughts/retries-can-multiply-the-original-failure/</guid><description>&lt;p&gt;We once had roughly 50,000 failed jobs sitting in queues and trying again every
60 seconds. Some represented a provider outage. Others contained malformed
input which could wait for three months and still be malformed. The queue made
no distinction and had no terminal condition.&lt;/p&gt;
&lt;p&gt;During a long outage, workers spent their time reproducing failures we already
understood. Redis filled with delayed work, fresh operations had to compete
with old ones, and a dependency problem became sustained load on our own
application. The retry loop was meant to make work reliable. What it actually
made durable was failure.&lt;/p&gt;</description></item></channel></rss>