[erlang-questions] question re. message delivery
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
The specific semantics - delivery not guaranteed, in order guaranteed is
just a bit odd, and begging for clarification. As is the thinking
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
More information about the erlang-questions