<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hi Joe, <br>
</p>
<p>Hmmm....</p>
<div id="thread_lister_ctrl" style="margin: 7px 4px 8px; width:
calc(100% - 17px); display: table; color: rgb(0, 0, 0);
font-family: -webkit-standard; font-style: normal;
font-variant-caps: normal; font-weight: normal; letter-spacing:
normal; orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px;">
<div style="display: table-cell;">Joe Armstrong wrote:<br>
</div>
</div>
<p>
<blockquote type="cite"><span style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">What I said was
"message passing is assumed to be reliable"</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
</blockquote>
</p>
<p>
<blockquote type="cite"><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">The key word
here is *assumed* my assumption is that if I open a TCP socket</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">and send it
five messages numbered 1 to 5 then If I successfully read</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">message</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">5 and have seen
no error indicators then I can *assume* that messages 1 to</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">4 also arrived
in order.</span><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
</blockquote>
</p>
<p><br>
</p>
<p>Well yes, but with TCP one has sequence numbers, buffering, and
retransmission - and GUARANTEES, by design, that if you (say a
socket connection) receive packet 5, then you've also received
packets 1-4, in order. <br>
</p>
<p>My understanding is that Erlang does NOT make that guarantee. As
stated:</p>
<p>- message delivery is assumed to be UNRELIABLE</p>
<p>- ordering is guaranteed to be maintained</p>
<p>The implication being that one might well receive packets 1, 2,
3, 5 - and not know that 4 is missing.<br>
<blockquote type="cite"><span style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">Actually I have
no idea if this is true - but it does seem to be a</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">reasonable</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">assumption.</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">Messages 1 to 4
might have arrived got put in a buffer prior to my reading</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">them and
accidentally reordered due to a software bug. An alpha
particle</span><br style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">might have hit
the data in message 3 and changed it -- who knows?</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
</blockquote>
</p>
<p><br>
</p>
<p>More likely, a TCP connection has dropped, taking a message or
two with it, and once the connection is re-established, stuff
starts flowing after a gap.</p>
<p>With UDP, packets could arrive out of order as well as get
dropped. <br>
</p>
<p>There are ways to extend TCP, or write a higher level protocol
that will detect dropped connections, and packets, reconnect,
request retransmission - with the result that both the sender
& receiver are guaranteed both delivery & order.<br>
</p>
<p>Which brings us back to implementation.<br>
</p>
<p>
<blockquote type="cite"><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">Having assumed
that message passing is reliable I build code based on</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">this
assumption.</span><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
</blockquote>
</p>
<p>But, for Erlang, we can't make this assumption - the
documentation specifically says so. <br>
<blockquote type="cite"><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">I'm not, of
course, saying that the assumption is true, just that I trust</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">the</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">implementers of
the system have done a good job to try and make it true.</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">Certainly any
repeatable counter examples should have been investigated</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">to see if there
were any errors in the system.</span><br style="color: rgb(34,
34, 34); font-family: "Helvetica Neue", Arial,
sans-serif; font-size: 15px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">All this builds
on layers of trust. I trust that erlang message passing is</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">ordered and
reliable in the absence of errors.</span><br style="color:
rgb(34, 34, 34); font-family: "Helvetica Neue",
Arial, sans-serif; font-size: 15px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">The Erlang
implementers trust that TCP is reliable.</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
</blockquote>
</p>
<p><br>
</p>
<p>Well, that is the question, isn't it. Lots of things cause TCP
to drop connections. So the question remains - how are dropped
connections handled? And, if after a connection is dropped and
restored, how are dropped messages and/or messages received out of
order handled?<br>
</p>
<p>Actually, there's another design question in there - in a
multi-node Erlang system, maintaining n2 TCP connections seems
just a tad unwieldy. Personally, I'd be more likely to use a
connectionless protocol, maybe even broadcast. <br>
</p>
<p><br>
<blockquote type="cite"><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">The TCP
implementors trust that the OS is reliable.</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">The OS
implementors trust that the processor is reliable.</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">The pro</span><span
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px; display: inline
!important; float: none;">cessor implementors trust that the
VLSI compilers are correct.</span><br style="color: rgb(34,
34, 34); font-family: "Helvetica Neue", Arial,
sans-serif; font-size: 15px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">Software runs
on physical machines - so really the laws of physics apply not</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">maths. Physics
takes into account space and time, and the concept of</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">simultaneity
does not exist, no so in maths.</span><br style="color:
rgb(34, 34, 34); font-family: "Helvetica Neue",
Arial, sans-serif; font-size: 15px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">It seems to me
that software is built upon chains of trust, not upon</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">mathematical
chains of proof.</span><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">I've just been
saying "what we want to achieve" and not "how we can achieve</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">it".</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
</blockquote>
</p>
<p>Which brings us back to:</p>
<p>stated goals: unreliable delivery, ordered delivery<br>
</p>
<p>The BEAM Book details how this works within a node, but is silent
on how distributed Erlang is implemented. I'm really interested
in some details.<br>
<blockquote type="cite"><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">The statements
that people make about the system should be in terms</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">of belief
rather than proof.</span><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<br style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">I'd say "I
believe we have reliable message passing"</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">It would be
plain daft to say "we have reliable message passing" or</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">"we can prove
it be correct" since there is no way of validating this.</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
</blockquote>
</p>
<p>Sure there is. The state machine model of TCP is very clearly
defined, including its various error conditions. And one can test
an implementation for adherence to the state machine model. (In
some cases, one can also demonstrate that software is provably
correct - but let's not go there).<br>
</p>
<p><br>
<blockquote type="cite"><br style="color: rgb(34, 34, 34);
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 15px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">Call me old
fashioned but I think that claims that, for example,</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
<span style="color: rgb(34, 34, 34); font-family:
"Helvetica Neue", Arial, sans-serif; font-size:
15px; font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: auto;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-size-adjust: auto; -webkit-text-stroke-width:
0px; display: inline !important; float: none;">"we have
unlimited storage" and so on are just nuts ...</span><br
style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
auto; -webkit-text-stroke-width: 0px;">
</blockquote>
</p>
<p>Agreed. But claims like "when allocated storage reaches 80% use,
additional storage is allocated by <mechanism>" are not just
reasonable, but mandatory when designing systems that have to
scale under uncertain load.<br>
</p>
Which brings us back to - how is message passing implemented between
Erlang nodes?<br>
<br>
<span style="color: rgb(34, 34, 34); font-family: "Helvetica
Neue", Arial, sans-serif; font-size: 15px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px; display: inline !important; float:
none;">Cheers,<br>
<br>
Miles<br>
</span><br>
<pre class="moz-signature" cols="72">--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra</pre>
</body>
</html>