1 min de lecture

Notifications temps réel (SSE)

Abonnez-vous aux canaux NOTIFY de PostgreSQL via Server-Sent Events :

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

Chaque message est du JSON avec le canal et le payload :

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

Si le payload est du texte, il est encapsulé en string dans data.

Envoyer des notifications depuis PostgreSQL

Depuis psql ou n’importe quelle session de base de données :

-- Payload texte simple
NOTIFY orders, 'nouvelle commande';

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

Depuis un trigger ou une procédure stockée :

PERFORM pg_notify('orders', json_build_object('id', NEW.id, 'status', NEW.status)::text);
Remarque : NOTIFY n’est délivré aux autres sessions qu’après le commit de la transaction émettrice. Si vous l’exécutez à l’intérieur d’une transaction ouverte dans psql, les abonnés ne le recevront qu’après le COMMIT.