Notificações em tempo real (SSE)
Assine canais PostgreSQL NOTIFY via Server-Sent Events:
curl -N "http://localhost:8080/db/my_database/sse?channels=orders,users" \
-H "Authorization: Bearer $TOKEN"Cada mensagem é JSON com o canal e o payload:
{"channel":"orders","data":{"id":123,"status":"created"}}Se o payload for texto, ele é encapsulado como string em data.
Enviar notificações a partir do PostgreSQL
A partir do psql ou de qualquer sessão de banco de dados:
-- Payload de texto simples
NOTIFY orders, 'novo pedido';
-- Payload JSON
NOTIFY orders, '{"id":123,"status":"created"}';
A partir de um trigger ou stored procedure:
PERFORM pg_notify('orders', json_build_object('id', NEW.id, 'status', NEW.status)::text);Nota:
NOTIFY só é entregue às outras sessões após o commit da transação
remetente. Se você o executar dentro de uma transação aberta no psql, os assinantes só o
receberão após o COMMIT.