Database / Supabase Intermediate to Advanced Interview Questions
When should you choose LISTEN/NOTIFY over Supabase Realtime for internal service communication?
LISTEN/NOTIFY fits when the communicating parties are trusted backend processes that already maintain a persistent Postgres connection — a background worker, a queue processor, or another server-side service — and the goal is a lightweight, low-latency signal (like "a new job was inserted, go process it") rather than a browser-facing data feed.
Because NOTIFY messages aren't persisted (a listener that isn't connected at the moment a notification fires simply misses it) and there's no authorization model, it's a poor fit for anything client-facing or anything that needs guaranteed delivery. Realtime is the better choice whenever the recipient is a browser or mobile client, when authorization per row matters, or when the message needs to survive a temporary disconnect — Realtime's channel subscriptions handle reconnection and can be scoped with RLS in ways a raw NOTIFY message was never designed to support.
More Related questions...