1 Min. Lesezeit

Realtime-Benachrichtigungen (SSE)

Abonnieren Sie PostgreSQL-NOTIFY-Kanäle über Server-Sent Events:

curl -N "http://localhost:8080/db/my_database/sse?channels=orders,users" \
  -H "Authorization: Bearer $TOKEN"

Jede Nachricht ist JSON mit Kanal und Payload:

{"channel":"orders","data":{"id":123,"status":"created"}}

Wenn der Payload Text ist, wird er als String in data verpackt.

Benachrichtigungen aus PostgreSQL senden

Aus psql oder einer beliebigen Datenbank-Session:

-- Einfacher Text-Payload
NOTIFY orders, 'neue Bestellung';

-- JSON-Payload
NOTIFY orders, '{"id":123,"status":"created"}';

Aus einem Trigger oder einer gespeicherten Prozedur:

PERFORM pg_notify('orders', json_build_object('id', NEW.id, 'status', NEW.status)::text);
Hinweis: NOTIFY wird erst nach dem Commit der sendenden Transaktion an andere Sessions zugestellt. Wenn Sie es innerhalb einer offenen Transaktion in psql ausführen, erhalten Abonnenten die Nachricht erst nach COMMIT.