LISTEN/NOTIFY also has an 8000 character limitation.
The way I've ways seen LISTEN/NOTIFY used is just to send a "hey, there are items available in the queue!" signal to consumers.
I take your point though, that WAL is less limiting in this regard.
much more robust, with easier replay-ability.
Which way do you mean, using WAL or Publish/Notify?
WAL is reliable, but Publish/Notify isn't. You'll lose messages with Publish/Notify if you aren't listening for them.
this is exactly what I meant - WAL is your friend.
If you just use notify to tell listeners “there is work in the queue to grab” can you still lose messages? I’ve always seen it implemented where workers have to go and claim items (transactionally), not just wait to be pushed them.
No, that way is safe. Just make sure that your workers also check for items in the queue when they start.