---
title: "Realtime: Multiplayer Edition"
description: "Supabase announces the general availability of Realtime’s multiplayer features, Broadcast and Presence, alongside a new channel-based architecture and supabase-js support. Realtime originally used Postgres logical replication, rather than LISTEN/NOTIFY, to avoid the latter’s 8,000-byte payload limit and the latency of querying each change from the database. In the new design, Channels act as rooms that support ephemeral publisher/subscriber Broadcast messages, shared Presence state, and Postgres change events; Presence uses Phoenix Tracker, a delta-based CRDT, for eventually consistent synchronization and removes disconnected users automatically. Realtime now runs as a distributed Elixir and Phoenix cluster on Fly, with clients connecting to the nearest node and nodes communicating across a backbone network to improve connection speed, stability, and latency. Free-plan active projects and projects created from August 18 have access, while other projects are scheduled for migration over the following weeks."
---

# Realtime: Multiplayer Edition

[Supabase](https://yomu.fyi/company/supabase) · wenbo,stas · Aug 18, 2022

**Type:** Announcement

## Summary

Supabase announces the general availability of Realtime’s multiplayer features, Broadcast and Presence, alongside a new channel-based architecture and supabase-js support. Realtime originally used Postgres logical replication, rather than LISTEN/NOTIFY, to avoid the latter’s 8,000-byte payload limit and the latency of querying each change from the database. In the new design, Channels act as rooms that support ephemeral publisher/subscriber Broadcast messages, shared Presence state, and Postgres change events; Presence uses Phoenix Tracker, a delta-based CRDT, for eventually consistent synchronization and removes disconnected users automatically. Realtime now runs as a distributed Elixir and Phoenix cluster on Fly, with clients connecting to the nearest node and nodes communicating across a backbone network to improve connection speed, stability, and latency. Free-plan active projects and projects created from August 18 have access, while other projects are scheduled for migration over the following weeks.

## Context

Supabase is extending Realtime beyond database change delivery to support multiplayer use cases such as cursor sharing, online status, and typing indicators. The earlier implementation also faced a limitation with Postgres LISTEN/NOTIFY, whose payload limit is 8,000 bytes, making a query-for-each-change workaround too slow for the chat application described.

## Approach / What changed

Realtime introduces Channels as rooms containing Broadcast and Presence, while also supporting Postgres change events. Broadcast sends ephemeral publisher/subscriber messages without using the database; Presence synchronizes shared state through Broadcast using Phoenix Tracker, a delta-based conflict-free replicated data type. The service runs as a distributed Elixir and Phoenix cluster on Fly, and the new supabase-js release candidate exposes the client APIs.

## Takeaways

- Broadcast bypasses the database, making it suitable for real-time data such as cursor positions that previously could add latency and degrade database performance when sent through Postgres.
- Presence persists shared channel state for new joiners, synchronizes it eventually and conflict-free, and automatically removes a user’s state after an unexpected disconnect.
- The new Realtime deployment distributes servers globally, routes clients to the nearest node, and uses inter-node communication to improve connection speed, stability, and latency.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Open Source](https://yomu.fyi/topic/open-source), [Performance](https://yomu.fyi/topic/performance), [Scalability](https://yomu.fyi/topic/scalability)

- Source: [Supabase](https://supabase.com/blog/supabase-realtime-multiplayer-general-availability)
- Source URL: https://supabase.com/blog/supabase-realtime-multiplayer-general-availability
- Ingested by Yomu: 2026-08-28T16:00:44.746Z

[Read original post](https://supabase.com/blog/supabase-realtime-multiplayer-general-availability)
