

The Failure of iMessages - dr3wster
http://nuncamind.com/blog/2011/12/28/the-failure-of-imessages/

======
ddagradi
> Sending a text to either contact would get to her iPhone 4S, but the phone
> number contact would send an SMS, and the e-mail address would send as an
> iMessage.

Nope. Phone numbers also receive iMessages just fine.

~~~
dr3wster
Yes, that's how it works with the rest of my contacts, but for this one for
some reason she had an exclusive SMS contact and a separate iMessage contact.
The iMessage contact was associated with an email address and SMS contact was
associated with a phone number.

~~~
jgeorge
That's quite possible (and not a bug) if she has more than one device -
iMessage disabled on the phone (which would force phone number messages to be
SMS) but the email address turned on for iMessage on another device. I had my
iPhone/iPad set this way for a while to allow me to send messages from either
device without getting replies back to both devices.

~~~
dr3wster
That actually sort of makes sense, although I also have an iPad and used to
use it for iMessages occasionally. But no one has had a similar issue with me
as a contact (I've checked).

Edit: also I've checked with her and she has iMessages enabled on every
iDevice she owns.

------
jgavris
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>

"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
This 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
I 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 :)

