<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="338429" data-post-id="338429">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="D4no0" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/D4no0/120/33624_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  D4no0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="matthias_toepp" data-post="21" data-topic="65719">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/matthias_toepp/48/32258_2.png" class="avatar"> matthias_toepp:</div>
<blockquote>
<p>They have also separately pointed out that panics can be caught (through an added middle ware) so that the server doesn’t go down due to a panic, which may mean that the beam doesn’t triumph in this one single regard (but of course has many pros and cons in other regards) I realize that this point of comparison doesn’t address all the other points of comparison which I would have to evaluate for a particular use case.</p>
</blockquote>
</aside>
<p>Fault tolerance provided by erlang VM and using a catch all block are 2 completely different concepts.</p>
<p>One of the most important distinctions is that each elixir process has it’s own separate memory, this means that when it crashes, it is guaranteed by design that no other process memory will be corrupted. If you catch all panics in rust and you have entities that share the same data constructs in memory, you can easily corrupt that memory space and this is true for each language that has shared mutable values, even though I am not positive how memory safety + panics play in rust, maybe it can handle this better than languages like c/c++.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338429" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-338429" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338429"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="338470" data-post-id="338470">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="seeplusplus" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/seeplusplus/120/32772_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  seeplusplus
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>“Comparing apples with oranges” to me implies the question is inappropriate or invalid.</p>
</blockquote>
<p>The question <em>is</em> invalid. Frameworks and languages are just tools, it’s about how you use them. This is like asking if houses built with Husky hammers will fall apart more or less than houses built with Craftsman hammers. There are many other factors that determine the outcome; the variable of the brand of hammer is insignificant. You can build crash free services in either language. It takes skill. Any answer to the contrary is lying.</p>
<blockquote>
<p>I’m wanting to know if a phoenix server will crash less often than an Axum server and how much that really matters.</p>
</blockquote>
<p>Phoenix servers will not “crash” (you define this in a later post, I’m using your definition) more or less than an Axum server, inherently. How much it matters is entirely up to you, your team, and your tolerance for failures. This is decided on a case-by-case basis, hopefully by engineers, and is not related to the input of which hammer you choose.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338470" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-338470" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338470"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="338472" data-post-id="338472">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="matthias_toepp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/matthias_toepp/120/32258_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  matthias_toepp
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you so much for that! You made my day! <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20">  If I understand you correctly, both technologies provide programmers more or less the same overall level of safety against servers crashing, and it’s really all about how the programmers use those tools… <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p>
<p>I mean it’s entirely plausible that both technologies are roughly equal in this regard, and that it really does just come down to programmer skill.</p>
<p>If that turns out to be the case, then I didn’t know that!.. and I’ve learned something!</p>
<p>If I had guessed at the answer to my own question I would have guessed that the beam has a special ingredient that means that a phoenix server crashes less often than an axum server, programmer skill being equal.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338472" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-338472" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338472"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="338476" data-post-id="338476">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="matthias_toepp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/matthias_toepp/120/32258_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  matthias_toepp
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="seeplusplus" data-post="23" data-topic="65719">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/seeplusplus/48/32772_2.png" class="avatar"> seeplusplus:</div>
<blockquote>
<p>How much it matters is entirely up to you</p>
</blockquote>
</aside>
<p>I would be interested to know how much it matters if a server crashes and is restarted…from people with experience running high demand servers in production.  I literally don’t know if people loose sleep over this or if they don’t care, or where they land on the spectrum between these two extremes, or if one community cares less about this than the other because of the nature of the tech.</p>
<p>I provide support for plc systems. I know that there are things that can go wrong and things that are basically impossible.  I can try to skillfully avoid doing certain things wrong, but I really really appreciate the extent to which a platform makes dangerous, unfortunate things impossible.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338476" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-338476" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338476"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="338480" data-post-id="338480">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Erlang/Elixir developers still try and avoid things that can go wrong, we just don’t lose sleep trying to cover <em>every little thing</em> that can go wrong.  We generally code the happy path, but if an error starts happening over and over in production, then we certainly either fix it or handle it more gracefully.  This why error handling is normally done via <code>:ok/:error</code> tuples—these are things we know can, and likely will, go wrong.  Exceptions are left for events that are more exceptional, like briefly losing the network.</p>
<p>I would suggest watching some talks by Joe Armstrong (RIP).  “Let it Crash” is more about not worrying about what we can’t control.  To paraphrase a point from one of Joe’s talks, a language like Rust can provide strong guarantees against runtime errors, but those guarantees are meaningless if one of the machines on the network is hit by a missile.</p>
<p>Erlang was developed to handle telecom which happens to map pretty nicely to HTTP.  While a dropped-call can sometimes be a matter of life-or-death, there isn’t much you can do if a tree takes out a telephone wire, but at least the rest of the network won’t be affected.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338480" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-338480" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338480"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="338482" data-post-id="338482">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="seeplusplus" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/seeplusplus/120/32772_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  seeplusplus
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>If I had guessed at the answer to my own question I would have guessed that the beam has a special ingredient that means that a phoenix server crashes less often than an axum server, programmer skill being equal.</p>
</blockquote>
<p>This is sort of the case. Erlang’s design is meant to encourage fault tolerance; what would be an unhandled exception that would crash a process and render a service unreachable in other languages is handled by the BEAM for us. But, the way it does this is not unique. It’s mostly due to an implementation of the <a href="https://en.wikipedia.org/wiki/Actor_model" rel="noopener nofollow ugc">actor model</a> baked into the runtime. It can be, and has been, <a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Orleans-MSR-TR-2014-41.pdf" rel="noopener nofollow ugc">done in other languages</a>, including <a href="https://github.com/actix/actix" rel="noopener nofollow ugc">in Rust</a>. This integration at the core is a point of “more stability” in Elixir/Erlang/Phoenix’s favor, but just because a crash occurs and the runtime handles restarting for you, doesn’t mean that critical sections of your application can’t be down - there is no language or framework that can fix that for you.</p>
<blockquote>
<p>I literally don’t know if people loose sleep over this or if they don’t care, or where they land on the spectrum between these two extremes</p>
</blockquote>
<p>This is subject to case-by-case. I, like probably many others on this forum and elsewhere, have been woken up by production outages that were “stop the world, this needs fixing now or people can be hurt/sensitive data can be leaked” but sometimes, even at the same organizations/projects an outage is simply "mute this alarm and fix it in the morning. So yes, people do lose sleep over this. You’d probably be interested in looking at software in safety critical systems, e.g., aircraft/medical equipment, to see the types of choices in languages/tools they make. I can tell you Elixir isn’t getting deployed on an airplane, but neither is Axum. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<p>Edit: You might also enjoy <a href="https://www.youtube.com/watch?v=Gv2I7qTux7g" rel="noopener nofollow ugc">this video about Zig</a>, or the first few minutes at least.</p>
<p>Edit 2: One more thing on the “do people lose sleep over this,” in cases where a software defect is worth sleeping over I wouldn’t say between Elixir/Axum one is more or less better/worse than the other. The first thing I’d evaluate on making a choice is the team and the domain.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338482" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-338482" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338482"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="338485" data-post-id="338485">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="seeplusplus" data-post="27" data-topic="65719">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/seeplusplus/48/32772_2.png" class="avatar"> seeplusplus:</div>
<blockquote>
<p>I can tell you Elixir isn’t getting deployed on an airplane, but neither is Axum. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>This is a good summary point right here (along with the rest of your post).  And yet “safe” systems languages <em>still</em> kill people, unfortunately.  This is why I wish we’d stop using words like “guarantee.”  I don’t really have any experience in systems languages but like, how can anything running on a computer <em>guarantee</em> anything?  I realize I’m suppose to infer the hyperbole but I’m still human and that word means what it means to me.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338485" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-338485" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338485"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #27"></div>
  </section>
</div>
    <div class="postbit" id="338486" data-post-id="338486">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="seeplusplus" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/seeplusplus/120/32772_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  seeplusplus
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="sodapopcan" data-post="28" data-topic="65719">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/48/34668_2.png" class="avatar"> sodapopcan:</div>
<blockquote>
<p>I realize I’m suppose to infer the hyperbole but I’m still human and that word means what it means to me.</p>
</blockquote>
</aside>
<p>I think the unfortunate reality is that some people <em>aren’t</em> exaggerating when they make guarantees, they’re lying or just misinformed. Certainly some languages have design features intended to make things “more safe,” but no amount of language design can protect the programmer from themself.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338486" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-338486" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338486"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #28"></div>
  </section>
</div>
    <div class="postbit" id="338487" data-post-id="338487">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Actually, it’s pretty funny, I re-read this thread and noticed <a class="mention" href="/u/d4no0" rel="nofollow">@D4no0</a> uses “guarantee” in the sense that an Elixir process’ memory is guaranteed to be isolated… and I agree with that… so I’m apparently one of those people I was just ragging on <img src="https://forum.elixirforum.com/images/emoji/apple/sweat_smile.png?v=15" title=":sweat_smile:" class="emoji" alt=":sweat_smile:" loading="lazy" width="20" height="20"></p>
<p>I guess all I wanted to stress from my original point—and this becomes especially evident if you read/listen to Joe Armstrong (who was an incredibly entertaining, hilarious, and endearing individual)—Erlang’s relatively high level of abstraction is literally taking environmental/physical-beyond-computer-hardware consequences into account in its design… which is pretty cool <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338487" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-338487" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338487"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #29"></div>
  </section>
</div>
    <div class="postbit" id="338492" data-post-id="338492">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="jhogberg" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jhogberg/120/24176_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  jhogberg
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Erlang Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="seeplusplus" data-post="27" data-topic="65719">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/seeplusplus/48/32772_2.png" class="avatar"> seeplusplus:</div>
<blockquote>
<p>But, the way it does this is not unique. It’s mostly due to an implementation of the <a href="https://en.wikipedia.org/wiki/Actor_model" rel="noopener nofollow ugc">actor model</a> baked into the runtime. It can be, and has been, <a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Orleans-MSR-TR-2014-41.pdf" rel="noopener nofollow ugc">done in other languages</a>, including <a href="https://github.com/actix/actix" rel="noopener nofollow ugc">in Rust</a>.</p>
</blockquote>
</aside>
<p>Yes and no; those actor frameworks will not help you manage runaway tasks (nor will they grant you much in the way of introspection). In any M:N setup without pre-emption, a job that takes too long <em>will</em> screw up responsiveness, giving you bad latency of unrelated tasks in the best case, and locking things up entirely in the worst.</p>
<p>If we define “crash” as “the system no longer does what it is supposed to do,” Rust et al pushes way more responsibility to avoid them onto the programmer than Elixir.</p>
<p>There’s no free lunch however, and the trade-offs may tilt in Rust’s favor anyway, but I find “language X also has actors with supervision” a bit reductionist. I’ve yet to see any other solution that supports all aspects of resilience (by Hollnagel’s definition) as well as Elixir/Erlang does.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338492" data-batch-url="/posts/batch_likers">
                        10
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-much-more-crashproof-is-a-server-with-elixir-beam-compared-to-rusts-axum/65719/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-338492" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338492"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #30"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/65719/load_more?page=4">Load more posts (13 remaining)</a>
</div></template></turbo-stream>