Hacker News new | past | comments | ask | show | jobs | submit login

If nobody ever hears from the server again, then who cares what it has stored on it's forever offline disk?

Consider that the same applies to crashes in any system that does not provide you with a means of reading back the status of your previous delivery attempt.

Such as, e.g. a remote mail server if the operation was to send mail to take an obvious one.

In other words: The server does not need to go permanently offline - it may be sufficient for the established session to terminate.

Ever see Dr. Strangelove? If the last message was 'drop the Bomb' whether or not the plane received the message is a bit important.

The problem isn't that "nobody" ever hears from the server again. The problem is that "not everybody" ever hears from the server again. If you aren't sure that the server received your write, but another system (that does have access to the server) depends on the result of that write.

The point is that temporary network partitions happen and you can't guarantee delivery without expensive coordination. Sure, exactly-once is possible in environments where network partitions don't occur. Unfortunately, we don't live in that world.

"You Cannot Have Exactly-Once Delivery" is not the same as "Exactly-Once Delivery is expensive".

Which is it?

You cannot have it if the network is unreliable and systems fail. The network is unreliable and systems fail.

The point is that "Exactly-Once Delivery is expensive" is really just saying "at-most-once delivery with an eventual guarantee of the network healing"

You do, evidently, if it is extremely important to you that you guarantee exactly-once delivery.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact