PostgreSQL 18
Workers or the WAL
Outbox in Postgres: concurrent workers vs reading the WAL
Milan Jovanović compared two ways to drain a transactional outbox on PostgreSQL: polling workers and a reader streaming the write-ahead log through logical replication. Both move thousands of messages per second, so the real split is latency against operational cost — a replication slot, WAL held on disk and heavier duplicate replays.