1 min de lectura

Notificaciones en tiempo real (SSE)

Suscríbete a canales NOTIFY de PostgreSQL mediante Server-Sent Events:

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

Cada mensaje es JSON con el canal y el payload:

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

Si el payload es texto, se envuelve como string en data.

Enviar notificaciones desde PostgreSQL

Desde psql o cualquier sesión de base de datos:

-- Payload de texto simple
NOTIFY orders, 'nuevo pedido';

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

Desde un trigger o procedimiento almacenado:

PERFORM pg_notify('orders', json_build_object('id', NEW.id, 'status', NEW.status)::text);
Nota: NOTIFY solo se entrega a otras sesiones tras el commit de la transacción que lo envió. Si lo ejecutas dentro de una transacción abierta en psql, los suscriptores no lo recibirán hasta el COMMIT.