3 ms·
to be fair, distributed consensus is essentially impossible. iMessage is definitely an improvement on SMS, though. read up on the 'two generals problem' http:
by jgavris 15y ago
to be fair, distributed consensus is essentially impossible. iMessage is definitely an improvement on SMS, though.
read up on the 'two generals problem'
http://en.wikipedia.org/wiki/Two_Generals%27_Problem http://en.wikipedia.org/wiki/Two_Generals%27_Problem
"Because acknowledgement of message receipt can be lost as easily as the original message, a potentially infinite series of messages is required to come to consensus."
- dr3wster 15y agoThis is very true, but my main issue was my phone receiving a delivery confirmation when the recipient never actually received the message. That seems like unacceptable behavior to me. Assuming the messages are IDed in some way, why can't phone A just keep sending message 1 to phone B until it receives a confirmation for message 1 from phone B? And phone B can just ignore any duplicate message 1's and send back confirmations for them anyway. Obviously this becomes a very complex problem over a large scale, but I feel like Apple can do better than this.
- jgavris 15y agoI would be very disappointed to be able to recreate the scenario you describe. 'Delivered' should mean that the distributed transaction was 'committed', aka Alice has committed Bob's message :)