# Supabase Realtime, with Multiplayer Features

[Supabase](https://yomu.fyi/company/supabase) · Wen Bo Xie · Apr 1, 2022

**Type:** Announcement

## Summary

Supabase announced the third major release of Supabase Realtime, evolving the system from a single-tenant PostgreSQL change listener into a multi-tenant, distributed real-time platform. Built using Elixir and the Phoenix framework across a distributed node cluster, the new architecture decouples the database listener into an extension model and opens generic WebSocket functionality. New multiplayer capabilities include Presence, which uses Conflict-free Replicated Data Types (CRDTs) to track user connection states, and Broadcast, which distributes ephemeral messages across topics without writing to disk. The modular extension design allows listening to multiple PostgreSQL instances, external systems like MySQL, and financial or blockchain feeds, as demonstrated on a globally distributed 20-node cluster.

## Context

Prior versions of Supabase Realtime were single-tenant and could only poll one PostgreSQL database at a time via Write-Ahead Log streaming, restricting WebSocket usage strictly to database change propagation.

## Approach / What changed

Supabase re-architected Realtime into a multi-tenant distributed cluster built on Elixir and Phoenix, decoupling PostgreSQL listening into an extension architecture and introducing general WebSocket features including CRDT-based Presence and ephemeral Broadcast messaging.

## Takeaways

- Realtime v3 introduces multi-tenancy on a distributed Elixir and Phoenix cluster, enabling a single deployment to listen to multiple databases while improving fault tolerance and resource utilization.
- Presence automatically tracks user connections and synchronizes online states across distributed cluster nodes using Conflict-free Replicated Data Types (CRDTs).
- Decoupling database listening into an extension architecture allows general WebSocket pub/sub broadcasting and opens support for external data sources such as MySQL, financial tickers, or blockchains.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Open Source](https://yomu.fyi/topic/open-source), [Postgres](https://yomu.fyi/topic/postgres), [Scalability](https://yomu.fyi/topic/scalability), [Streaming](https://yomu.fyi/topic/streaming)

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