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

Yes, but the receiver can be faulty. If it acknowledges the message and then crashes before handling it, you've got at-most-once, and if it handles the message and then crashes before acknowledging it, you've got at-least-once. You can avoid this if the receiver handles and acknowledges in a single transaction, but I only know of one platform that implements this and everyone hates it (hence the throwaway).


Even with a transaction, if the processing involves external side effects, e.g. sending and email, the rollback won't matter and you still get at least once.


There's no rollback, it's an atomic transaction. The certainty that messages are always handled completely or fail completely is one of the big design constraints that made the whole thing so hinky.




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

Search: