Database / Supabase Intermediate to Advanced Interview Questions
What is the difference between LISTEN/NOTIFY and Supabase Realtime's Postgres Changes channel?
LISTEN/NOTIFY is a raw Postgres primitive: a connected client issues LISTEN channel_name and then receives any message another session sends via NOTIFY channel_name, 'payload', over that same direct Postgres connection — it requires holding a persistent database connection and has no built-in authorization model.
Supabase Realtime's Postgres Changes channel is built on top of logical replication (not LISTEN/NOTIFY) and is designed for browser and mobile clients: it delivers change events over WebSockets, integrates with Row Level Security so a client only receives events for rows it's allowed to see, and doesn't require the client to hold a raw database connection at all. LISTEN/NOTIFY remains more suited to backend-to-backend signaling within trusted server processes, while Realtime is the client-facing, authorization-aware option.
More Related questions...