←back to thread

570 points davidgu | 1 comments | | HN request time: 0.364s | source
Show context
hombre_fatal ◴[] No.44525152[source]
Interesting. What if you just execute `NOTIFY` in its own connection outside of / after the transaction?
replies(4): >>44525332 #>>44525408 #>>44526003 #>>44528534 #
nick_ ◴[] No.44525408[source]
My thought as well. You could add notify commands to a temp table during the transaction, then run NOTIFY on each row in that temp table after the transaction commits successfully?
replies(2): >>44526402 #>>44526428 #
1. zbentley ◴[] No.44526428[source]
This is roughly the “transactional outbox” pattern—and an elegant use of it, since the only service invoked during the “publish” RPC is also the database, reducing distributed reliability concerns.

…of course, you need dedup/support for duplicate messages on the notify stream if you do this, but that’s table stakes in a lot of messaging scenarios anyway.