<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>On 9/26/17 10:05 AM, <b>Matthias Lang</b> wrote:<br>
</p>
<blockquote type="cite"
cite="mid:20170926170537.tj2esvvm7474hvid@hec.corelatus.se">
<pre wrap="">On 26. September 2017, Miles Fidelman wrote:
</pre>
<blockquote type="cite">
<blockquote type="cite">
<pre wrap="">Miles, do you have some concrete examples of situations where you're
worried about messages disappearing? Here's one from me: process 1
sends two messages to process 2. The messages are A and B,
respectively. Process 2 sends an ACK for message B back to process
1. For single-node Erlang, if message A disappears then that is a
bug. I'll let others reason about distributed Erlang.
</pre>
</blockquote>
<pre wrap="">
Sure. Bank transactions. Edits to a document. Dispatch commands to a
vehicle.
</pre>
</blockquote>
<pre wrap="">
Those are not what I consider concrete examples.</pre>
</blockquote>
<br>
How concrete do you need. There are lots of systems where one needs
reliable, ordered message delivery. One generally implements an
acknowledgement, but those can be unordered.<br>
<br>
Let's say that a transaction is a test-and-set on a value. With
acknowledgement sent after transaction is executed.<br>
<br>
Send transactions 1,2,3,4,5<br>
<br>
If message delivery is ordered & guaranteed, then an
acknowledgement from 5 guarantees that transactions 1-4 were
performed, in order, even if some of the acknowledgements were not
received.<br>
<br>
If, either, a message can get dropped, or it can get delivered out
of order, then one needs a protocol on top of basic message delivery
to wait for an acknowledgement of each and every message before
sending the next. <br>
<br>
There are multiple approaches to implementing a reliable messaging
protocol. What approach would work best somewhat depends on the
kinds of failure modes one has to deal with (i.e., the services
provided by the next layer down).<br>
<br>
Miles<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>