[erlang-questions] question re. message delivery

Miles Fidelman <>
Tue Sep 26 20:31:17 CEST 2017


On 9/26/17 11:25 AM, Oliver Korpilla wrote:

> Hello, Miles.
>
> Not sure if that is the best example.
>
> Trusting blindly in delivery order can cause problems, so financial transactions could for example handled by doing transactions on Mnesia. These transactions should have checks within them that abort the transaction if it cannot be applied. Also, the system does not rely on the arrival of messages, only that each query is responsible for doing its own checking - like disallowing account balances below zero and hence rejecting (or flagging) such a transaction. Ordering problems can then be solved by retries, for example.
>
> If you start to rely on message order and guaranteed delivery, standard Erlang messaging is not a suitable system. IIRC, RabbitMQ guarantees delivery _if possible_. If you enable this mode every message is cached until its processing is acknowledged. Excuse my lack of specifics or any inaccuracy but I have this info from somebody else demonstrating their distributed system to a group I was in.
>
>
I understand that.  What I'm trying to understand are the specific 
implementation details & behaviors.  As much out of curiosity as 
anything else.

The specific semantics - delivery not guaranteed, in order guaranteed is 
just a bit odd, and begging for clarification.  As is the thinking 
behind it.

Miles

-- 
In theory, there is no difference between theory and practice.
In practice, there is.  .... Yogi Berra



More information about the erlang-questions mailing list