<h1 dir="auto">Checklist</h1>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+label%3A%22Issue+Type%3A+Feature+Request%22+">issues list</a><br>
for similar or identical feature requests.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/pulls?utf8=%E2%9C%93&amp;q=is%3Apr+label%3A%22PR+Type%3A+Feature%22+">pull requests list</a><br>
for existing proposed implementations of this feature.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/commits/master">commit log</a><br>
to find out if the if the same feature was already implemented in the<br>
master branch.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all related issues and possible duplicate issues<br>
in this issue (If there are none, check this box anyway).</li>
</ul>
<h2 dir="auto">Related Issues and Possible Duplicates</h2>

<h4 dir="auto">Related Issues</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h4 dir="auto">Possible Duplicates</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h1 dir="auto">Brief Summary</h1>

<p dir="auto">I need to have a possibility to override backend implementation in my project.</p>
<p dir="auto"><a href="https://github.com/celery/celery/commit/169668b4cc61431c5162837d2fae740c1a765db7">Overriding backend implementation with Loader.override_backend</a> was introduced years ago. But there is no way to set <code class="notranslate">Loader.override_backends</code> member -- nor with celeryconfig nor with command line arguments or env variables -- it is always empty dict.</p>
<p dir="auto">So my request is to add a possibility to set <code class="notranslate">Loader.override_backends</code> with celeryconfig.</p>
<p dir="auto">I have checked that setting <a href="https://github.com/celery/celery/blob/afff659fcca833ea48483b219355044dc8de7aa2/celery/loaders/base.py#L55">override_backend</a> field works and allows to override backend.</p>
<h1 dir="auto">Design</h1>
<h2 dir="auto">Architectural Considerations</h2>

<p dir="auto">None</p>
<h2 dir="auto">Proposed Behavior</h2>

<p dir="auto">Adding next dict to <code class="notranslate">celeryconfig.py</code></p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="override_backends = {
    'db': 'my_module.DatabaseBackend',
}"><pre class="notranslate"><span class="pl-s1">override_backends</span> <span class="pl-c1">=</span> {
    <span class="pl-s">'db'</span>: <span class="pl-s">'my_module.DatabaseBackend'</span>,
}</pre></div>
<p dir="auto">should change <code class="notranslate">Loader.override_backends</code> from empty dict to</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{
    'db': 'my_module.DatabaseBackend',
}"><pre class="notranslate"><code class="notranslate">{
    'db': 'my_module.DatabaseBackend',
}
</code></pre></div>
<p dir="auto">which is used in <a href="https://github.com/celery/celery/blob/afff659fcca833ea48483b219355044dc8de7aa2/celery/app/backends.py#L41-L46">celery.app.backends.by_name</a><br>
to replace default backend implementation with custom one.</p>
<h2 dir="auto">Proposed UI/UX</h2>

<h2 dir="auto">Diagrams</h2>

<p dir="auto">N/A</p>
<h2 dir="auto">Alternatives</h2>

<p dir="auto">None</p>
<h1 dir="auto">Checklist</h1>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+label%3A%22Category%3A+Documentation%22+">issues list</a><br>
for similar or identical bug reports.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/pulls?q=is%3Apr+label%3A%22Category%3A+Documentation%22">pull requests list</a><br>
for existing proposed fixes.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/commits/master">commit log</a><br>
to find out if the bug was already fixed in the master branch.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all related issues and possible duplicate issues in this issue<br>
(If there are none, check this box anyway).</li>
</ul>
<h2 dir="auto">Related Issues and Possible Duplicates</h2>

<h4 dir="auto">Related Issues</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h4 dir="auto">Possible Duplicates</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h1 dir="auto">Description</h1>

<p dir="auto"><code class="notranslate">docs/getting-started/next-steps.rst</code> includes the text:</p>
<blockquote>
<p dir="auto">The backend argument specifies the result backend to use, It's used to keep track of task state and results. While results are disabled by default I use the RPC result backend here because I demonstrate how retrieving results work later, you may want to use a different backend for your application</p>
</blockquote>
<p dir="auto">However, the code that is included is <code class="notranslate">examples/next-steps/proj/celery.py</code> which uses the amqp backend.</p>
<h2 dir="auto">Screenshot of the issue:</h2>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/82541/73284238-45478f80-41c2-11ea-95bc-2471c2320267.png"><img src="https://user-images.githubusercontent.com/82541/73284238-45478f80-41c2-11ea-95bc-2471c2320267.png" alt="image" style="max-width: 100%;"></a></p>
<h1 dir="auto">Suggestions</h1>

<p dir="auto">Simply change the next-steps.rst doc file to say "I use the AMQP/Rabbitmq result backend here because..."</p>