Что такое Notify в PostgreSQL

«Что такое Notify в PostgreSQL» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

NOTIFY в PostgreSQL — это механизм для отправки уведомлений между процессами. Он позволяет серверу сообщать клиентам о событиях в реальном времени без постоянного опроса.

Как работает:

  1. Один процесс отправляет уведомление с именем канала и (опционально) данными:

    NOTIFY channel_name, 'payload';
  2. Другие процессы, подписанные на этот канал (LISTEN channel_name), получают уведомление.

Пример:

-- В сессии 1:
LISTEN updates;

-- В сессии 2:
NOTIFY updates, 'Data changed!';

-- Сессия 1 получит асинхронное уведомление.  

Особенности:

  • Уведомления транзакционны — отправляются только при коммите.
  • Полезны для триггеров или событий в приложениях (например, через pg_notify в Go).
  • Нет гарантии доставки при разрыве соединения.