zlacker

[parent] [thread] 2 comments
1. thepti+(OP)[view] [source] 2023-09-24 22:37:30
Worth being clear that bridging to another non-idempotent system necessarily requires you to pick at-least-once or at-most-once semantics. So for emails, if you fail awaiting confirmation of your email you still need to pick between failing your transaction and potentially duplicating the email, or continuing and potentially dropping it.

The big advantage is for code paths which async modify your DB; these can be done fully transactionally with exactly-once semantics since the Job consumption and DB update are in the same transaction.

replies(1): >>skybri+q3
2. skybri+q3[view] [source] 2023-09-24 23:09:17
>>thepti+(OP)
Email might never arrive, though. The only way to know they got it is to have them follow a link to confirm.
replies(1): >>collin+6q
◧◩
3. collin+6q[view] [source] [discussion] 2023-09-25 03:41:12
>>skybri+q3
That's kind of missing the parent's point. If you wanted to ensure emails arrive, that sounds like another queue that could be backed by a different table that is also produced into as part of the original transaction.
[go to top]