Supabase Realtime and Supabase ETL both use PostgreSQL logical replication but serve fundamentally different purposes. Realtime delivers live updates to client browsers and apps via WebSocket with best-effort delivery and temporary replication slots — ideal for chat, presence, and live dashboards. ETL is a CDC pipeline with at-least-once delivery and permanent replication slots, designed to reliably move all data changes to analytical destinations like BigQuery or Apache Iceberg. Key differences include delivery guarantees, destination targets, RLS support, and scale characteristics. A common mistake is using Realtime's Postgres Changes feature for system-to-system data replication, which breaks when connections drop. Many applications can use both: Realtime for live user-facing experiences and ETL for analytical pipelines.
Table of contents
Two tools, two jobs #What Realtime does #What ETL does #The key differences #When to use Realtime #When to use ETL #The mistake we see most often #Can I use both? #Quick reference #Getting started #Sort: