What is the purpose of stopping actors in Akka?
<p>I have read the Akka <a href="http://doc.akka.io/docs/akka/2.4.1/scala/fault-tolerance.html" rel="nofollow">docs on fault tolerance &amp; supervision</a>, and I <em>think</em> I totally get them, with one big exception (no pun intended).</p>

<p><strong>Why would you ever want/need to <em>stop</em> a child actor???</strong></p>

<p>The only clue in the docs is:</p>

<blockquote>
  <p>Closer to the Erlang way is the strategy to just stop children when they fail and then take corrective action in the supervisor...</p>
</blockquote>

<p>But to me, <strong>stopping</strong> a child is the same as saying "<em>don't execute this code any longer</em>", which to me, is effectively the same as deploying new changes to the code which has that actor removed entirely:</p>

<ul>
<li>Every Actor plays some critical role in the actor system</li>
<li>To simply stop the actor means that actor currently doesn't have a role any longer, and presumes the system can now somehow (magically) work without it</li>
<li>So again, to me, this is no different than refactoring the code to not even have the actor any more, and then deploying those changes</li>
</ul>

<p>I'm sure I'm just not seeing the forest through the trees on this one, but I just don't see any use cases where I'd have this big complex actor system, where each actor does critical work and then hands it off to the next critical actor, but then I stop an actor, and magically the whole system keeps on working perfectly.</p>

<p><strong>In short: stopping an actor (to me) is like ripping the transmission out of a moving vehicle. How can this ever be a good/desirable thing?!?</strong></p>