Search code examples
supabasesupabase-database

How exactly are Supabase realtime DB listeners billed?


I'm trying to gauge potential costs for running my app on Supabase, I've read through the pricing documentation but I'm not clear on how exactly realtime database reads are billed.

For e.g, the docs outline some realtime limits on the free tier:

  • 200 concurrent Realtime connections
  • 2 million Realtime messages

What exactly is a "Realtime message" in this case? The Realtime docs go on to state:

You can uniquely reference a channel by its topic you define when you initialize your Supabase Realtime client. Everyone connected to the same Channel topic will receive the same messages.

Clients can send and receive messages bi-directionally over a Channel. The Realtime backend can also push messages to all clients connected to the same Channel.

A single client can receive change records from Postgres, Broadcast messages from other clients and Presence updates all over the same Channel.

  • It seem like a single realtime Postgres DB listener update will be counted as a message. Is this correct?
  • If yes, would that be 1 message per connected client?

Solution

  • It seem like a single realtime Postgres DB listener update will be counted as a message. Is this correct?

    Yes, that is correct.

    If yes, would that be 1 message per connected client?

    Yes, it's 1 message per connected client.