6 ms·
If you define EOM as magic, or as a solution to the Two Generals problem, EOM is certainly impossible. If EOM means "the programmer doesn't have to think about
by urbit 9y ago
If you define EOM as magic, or as a solution to the Two Generals problem, EOM is certainly impossible.
If EOM means "the programmer doesn't have to think about idempotency," EOM is what I want. Happy to call this "EOM asterisk" if you and/or the OP like.
At any point in the conversation, you don't know whether your interlocutor has yet received the last message you sent. This is because you are talking over a network, rather than over a magic bus.
However, you know that before the endpoint processes each message, it has processed each previous message once and exactly once. I think this is what the programmer wants -- asterisk or no.
Network connectivity failure is best modeled as the limit case of network latency. Of course, when you send a message over a network in the real world, you can't know whether it has been received or not until you get an acknowledgment.
(Edit: asterisks.)