<div dir="ltr"><div><div><div><div># Quick Background<br><br>I inherited an Erlang
system that's a fairly typical HTTP, almost-ReST API. The nature of the
API and what it represents made Erlang a good choice for its concurrency
aspects. As for the reliability aspects, we rely totally on a typical
HTTP/S load balancer setup for HA. We do rolling restarts behind the LB
and not hot code upgrades as enabled by Erlang because of the complexity
of Erlang upgrades.<br><br></div><div># The Question<br><br></div>Why
should we run embedded mode in production? It seems that's the unspoken
law for production systems, but why? Is there some performance overhead
running in interactive mode? I've read about Code Loading Strategy in
the System Principles User's Guide:<br><a href="http://erlang.org/doc/system_principles/system_principles.html#id56789" target="_blank">http://erlang.org/doc/system_principles/system_principles.html#id56789</a><br><br></div>I've also read about the mode differences in the code server:<br><a href="http://erlang.org/doc/man/code.html" target="_blank">http://erlang.org/doc/man/code.html</a><br><br></div>I
don't see anything in any of the stdlib/OTP docs about *why* you would
choose embedded vs interactive mode. I'm leaning heavily toward using
interactive mode everywhere, dev through production, because it's so
much simpler and easy to understand. Someone please talk me out of it if
that's a terribly Bad Idea.<br><br></div><div>Ryan<span class=""></span></div></div>