<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 07:56:12 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[DOCS-8390] &quot;How to write resilient applications&quot;</title>
                <link>https://jira.mongodb.org/browse/DOCS-8390</link>
                <project id="10380" key="DOCS">Documentation</project>
                    <description>&lt;p&gt;Adapt this material, from my MongoDB World talk and my article, into a guide in the Manual:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://emptysqua.re/blog/how-to-write-resilient-mongodb-applications/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://emptysqua.re/blog/how-to-write-resilient-mongodb-applications/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first two thirds of my article is just setup, the actual guide would be much shorter. It would recommend that application developers write code that:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Uses idempotent operations for all high-value writes&lt;/li&gt;
	&lt;li&gt;Catches all network errors and retries idempotent writes once&lt;/li&gt;
	&lt;li&gt;Does not retry other errors&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;... and there can be a short justification of why this is a smart strategy.&lt;/p&gt;

&lt;p&gt;Put it in, or link it from, &lt;a href=&quot;https://docs.mongodb.com/manual/core/crud/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.mongodb.com/manual/core/crud/&lt;/a&gt; section.  &lt;/p&gt;</description>
                <environment></environment>
        <key id="302623">DOCS-8390</key>
            <summary>&quot;How to write resilient applications&quot;</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="2">Won&apos;t Fix</resolution>
                                        <assignee username="jesse@mongodb.com">A. Jesse Jiryu Davis</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                    </labels>
                <created>Wed, 20 Jul 2016 15:36:36 +0000</created>
                <updated>Mon, 30 Oct 2023 21:29:59 +0000</updated>
                            <resolved>Tue, 22 Aug 2017 20:13:05 +0000</resolved>
                                                    <fixVersion>Server_Docs_20231030</fixVersion>
                                    <component>manual</component>
                        <due></due>
                            <votes>2</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="1654378" author="mporemba@practicefusion.com" created="Tue, 22 Aug 2017 21:06:47 +0000"  >&lt;p&gt;Jesse, the new &lt;em&gt;retry_writes&lt;/em&gt; option goes a long way in improving reliability of writes for many applications. Remaining problem around education for engineers writing &quot;resilient applications&quot; will be:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Remember to enable the flag as a best practice.
	&lt;ul&gt;
		&lt;li&gt;I expect the &lt;em&gt;retry_writes&lt;/em&gt; option is not enabled by default, correct? That means developers will need to get into the good habit of enabling the flag. Similar to how they learn to buckle the seat belt when riding in a car, or regularly washing their hands to manage hygiene.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Understand any remaining edge cases with using &lt;em&gt;retry_writes&lt;/em&gt; that require proper exception handling.&lt;/li&gt;
	&lt;li&gt;Understand any possible side effects of using &lt;em&gt;retry_writes&lt;/em&gt;.
	&lt;ul&gt;
		&lt;li&gt;E.g. Is there a performance cost associated with this feature, WRT session management?&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="1654324" author="jesse" created="Tue, 22 Aug 2017 20:13:05 +0000"  >&lt;p&gt;I&apos;m no longer committed to writing this. The retryable writes / retryable reads specs for 3.6 will make an article like this much different and simpler, if anyone ever &lt;b&gt;does&lt;/b&gt; write it.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 22 Aug 2017 21:06:47 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 25 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>emet.ozar@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 25 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>jesse@mongodb.com</customfieldvalue>
            <customfieldvalue>mporemba@practicefusion.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrmmun:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hsns7r:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrz7lz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                </customfields>
    </item>
</channel>
</rss>