Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

So that everyone's on the same page, perhaps you could clarify what "delivery" means to you? For example:

* The human to whom the message is addressed reads it on their screen.

* The email is inserted into that person's inbox. It's possible something will happen to the message after than point, before the addressee actually reads it, but that isn't what you're talking about.

* The email has been accepted by a server operating as an endpoint for the addressee (their company's Exchange server), _and_ acknowledgement has been received by the sending server.

* The above, but no guarentees about the sending server getting the acknowledgement.

etc.

[Edit: also, what "guarentee" means to you. 100%, 99.99999% is good enough, and so on.]



The delivery contract in this case is between a message-sending client (SMTP client) and a message-receiving server (SMTP server). "Guarantee" meaning within the SLA for data durability of the storage provider for the message-receiving server.


And that, or course, is perfectly doable, and is done all the time. Not perfectly, but good enough. However, that's not generalizable to any other particular case. You always need to consider time, processing, storage, network constraints, what does "good enough" mean, and gobs of other stuff. That's the whole point in saying "you can't guarentee deliver-once"--you always have to say "it depends, and depends on what you can settle for."




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

Search: