Pular para o conteúdo
⚡ SUPERDB REALTIME

Realtime nativo
sobre Postgres.

Subscriptions a postgres_changes, presença multi-usuário e broadcast de eventos efêmeros — tudo num único WebSocket. Drop-in do Supabase Realtime, com latência sub-10ms dentro do Brasil.

Veja seu app ao vivo no painel.

Canais, presença, broadcast e WebSocket — em PT-BR, dark por padrão, no Studio do SuperDB.

superdb.com.br/dash/chat-app/realtime/channels
v0.4.2
EventoTabelaPayloadCanalQuando
INSERTproj_chat.messagesid: 4821, user: mariachat-sala-1agora
UPDATEproj_chat.reactionsmsg_id: 4819, emoji: 👍chat-sala-1há 1s
INSERTproj_chat.messagesid: 4820, user: joaochat-sala-1há 3s
DELETEproj_chat.messagesid: 4815chat-sala-1há 5s
INSERTproj_shop.cart_itemscart: 91, product: 1284cart-updateshá 7s
UPDATEproj_chat.usersid: 218, status: onlinepresence-onlinehá 12s
INSERTproj_chat.messagesid: 4818, user: anachat-sala-1há 14s
superdb.com.br/dash/chat-app/realtime/presence
v0.4.2
Online agora
892
+124 última hora
Salas ativas
142
+8 hoje
Sync médio
1.4s
−0.3s semana
UsuárioSalaEstadoÚltima atividade
Mmaria.silvachat-sala-1onlineagora
Jjoao.devchat-sala-1digitando…agora
Aana.costachat-sala-1onlinehá 2s
Ccarlos.limagame-lobbyawayhá 3min
Ppaula.techdoc-edit-42digitando…agora
Rrenato.engdash-liveonlinehá 4s
Lluiza.pmchat-sala-2onlineagora
superdb.com.br/dash/chat-app/realtime/broadcast
v0.4.2
EventoCanalPayloadDeQuando
typingchat-sala-1{ user_id: 218 }mariaagora
cursordoc-edit-42{ x: 412, y: 89 }paulaagora
reactionchat-sala-1{ emoji: '🎉', msg: 4819 }joaohá 1s
typingchat-sala-2{ user_id: 142 }luizahá 2s
notifynotifications{ kind: 'mention', from: 47 }systemhá 3s
cursordoc-edit-42{ x: 218, y: 312 }renatohá 4s
reactionchat-sala-1{ emoji: '👍', msg: 4818 }anahá 6s
superdb.com.br/dash/chat-app/realtime/connections
v0.4.2
Connections ativas
8.421
+312 última hora
Throughput
12k/s
+8% semana
Dropped
0.3%
−0.1% mês
PoolConexõesP50 latênciaP99 latênciaStatus
br-sp-12.8126ms14msok
br-sp-22.4187ms16msok
br-rj-11.6219ms22msok
br-pe-198712ms31msok
br-rs-158311ms27msdegraded

O que tem dentro.

Realtime que o frontend pede e o backend não bloqueia — sub-10ms dentro do Brasil.

🛰️

postgres_changes

Subscriba a INSERT/UPDATE/DELETE em qualquer tabela com filtros por coluna. RLS aplicado por linha — o usuário só recebe o que pode ler.

👥

Presence multi-usuário

Estado compartilhado por canal: quem tá online, digitando, onde tá o cursor. Sync com last-write-wins por chave.

📣

Broadcast efêmero

Eventos in-memory que não passam pelo banco: typing indicators, cursor positions, reactions, notifications. Sub-ms de overhead.

🔐

Auth via JWT

O token do usuário autoriza canal e linha. Suporta refresh em runtime — quando o JWT renova, o socket continua sem reconectar.

🇧🇷

Pools regionais BR

Pools em SP, RJ, PE e RS. Latência média sub-10ms dentro do Brasil. P99 abaixo de 30ms até no Nordeste.

🔁

Auto-reconnect

Reconexão com backoff exponencial, replay de eventos perdidos (com cursor) e fila de mensagens durante offline curto.

🚦

Backpressure

Rate limit por canal e por client. Drop de eventos antigos quando o consumidor não acompanha — sem travar o server.

📊

Métricas no Studio

Connections ativas, msgs/sec, latência P50/P99, dropped %, pools. Dashboards prontos por projeto.

🧱

WAL nativo

Lê do Write-Ahead Log do Postgres direto. Zero polling, zero triggers customizados. Cobertura completa de alterações.

🔌

Drop-in Supabase

Mesma API de db.channel(...).on('postgres_changes').subscribe(). Troca o import e migra sem refactor.

⚡ MIGRAR EM 1 LINHA

Subscriba a um canal
com 1 import.

A API do @superdb/supabase-compat é idêntica à do @supabase/supabase-js. Os métodos db.channel(), .on('postgres_changes'), .on('presence') e .on('broadcast') funcionam exatamente igual.

Você combina os três tipos de evento no mesmo canal — mudanças de tabela, sincronização de presença e broadcasts efêmeros — num único WebSocket.

import { createClient } from '@superdb/supabase-compat'
const db = createClient(url, anonKey)

const channel = db.channel('chat-sala-1')
  .on('postgres_changes',
    { event: 'INSERT', schema: 'proj_chat', table: 'messages' },
    (payload) => addToUI(payload.new)
  )
  .on('presence', { event: 'sync' }, () => {
    const online = Object.keys(channel.presenceState()).length
    setOnline(online)
  })
  .on('broadcast', { event: 'typing' }, ({ payload }) => {
    showTyping(payload.user_id)
  })
  .subscribe()

await channel.track({ user_id: session.user.id, name: 'Felipe' })
🇧🇷 BRASIL-FIRST

Realtime que entende a rede brasileira.

Latência < 10ms BR

Pools em São Paulo, Rio de Janeiro, Recife e Porto Alegre. Média sub-10ms dentro do Brasil — P99 abaixo de 30ms até pra cliente no Nordeste.

💬 Suporte e docs em PT-BR

Documentação completa em português, exemplos com casos brasileiros (chat de condomínio, dashboard de delivery, doc colaborativo). Suporte humano sem tradução automática.

🛡️ WebSocket através de firewall BR

WSS na porta 443 (mesma de HTTPS) — passa por firewall corporativo de banco e prefeitura. Fallback automático pra long-polling se o WSS for bloqueado.

Pronto pra deixar o app ao vivo?

Tier Free generoso: 200 connections simultâneas, 2M de mensagens/mês, todos os tipos de canal. Sem cartão.