Skip to content

Commit c838a01

Browse files
committed
Renaming Calls to Realtime
1 parent 92d15a8 commit c838a01

32 files changed

+838
-246
lines changed

public/realtime/static/realtime-api-2024-05-21.yaml

Lines changed: 545 additions & 0 deletions
Large diffs are not rendered by default.

src/content/apps/index.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -229,33 +229,33 @@
229229
updated: 2023-03-22
230230
- link: https://github.com/cloudflare/orange
231231
id: Orange Meets
232-
description: Orange Meets is a demo WebRTC application built using Cloudflare Calls.
232+
description: Orange Meets is a demo WebRTC application built using Cloudflare Realtime.
233233
tags: []
234-
products: [Calls]
234+
products: [Realtime]
235235
languages: [TypeScript]
236236
cloudflare: true
237237
updated: 2024-07-05
238238
- link: https://github.com/cloudflare/calls-examples/tree/main/whip-whep-server
239239
id: WHIP-WHEP Server
240-
description: WHIP and WHEP server implemented on top of Calls API.
240+
description: WHIP and WHEP server implemented on top of Realtime API.
241241
tags: []
242-
products: [Calls]
242+
products: [Realtime]
243243
languages: [TypeScript]
244244
cloudflare: true
245245
updated: 2022-06-12
246246
- link: https://github.com/cloudflare/calls-examples/tree/main/echo
247-
id: Calls Echo Demo
247+
id: Realtime Echo Demo
248248
description: Demonstrates a local stream alongside a remote echo stream.
249249
tags: []
250-
products: [Calls]
250+
products: [Realtime]
251251
languages: [JavaScript]
252252
cloudflare: true
253253
updated: 2025-05-10
254254
- link: https://github.com/cloudflare/calls-examples/tree/main/echo-datachannels
255-
id: Calls DataChannel Test
255+
id: Realtime DataChannel Test
256256
description: This example establishes two datachannels, one publishes data and the other one subscribes, the test measures how fast a message travels to and from the server.
257257
tags: []
258-
products: [Calls]
258+
products: [Realtime]
259259
languages: [JavaScript]
260260
cloudflare: true
261261
updated: 2022-06-04

src/content/docs/calls/index.mdx

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/content/docs/calls/introduction.mdx

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/content/docs/calls/pricing.mdx

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/content/docs/calls/sessions-tracks.mdx

Lines changed: 0 additions & 45 deletions
This file was deleted.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
pcx_content_type: get-started
3+
title: Realtime vs regular SFUs
4+
sidebar:
5+
order: 4
6+
7+
---
8+
9+
## Cloudflare Realtime vs. Traditional SFUs
10+
11+
Cloudflare Realtime represents a paradigm shift in building real-time applications by leveraging a distributed real-time data plane. It creates a seamless experience in real-time communication, transcending traditional geographical limitations and scalability concerns. Realtime is designed for developers looking to integrate WebRTC functionalities in a server-client architecture without delving deep into the complexities of regional scaling or server management.
12+
13+
### The Limitations of Centralized SFUs
14+
15+
Selective Forwarding Units (SFUs) play a critical role in managing WebRTC connections by selectively forwarding media streams to participants in a video call. However, their centralized nature introduces inherent limitations:
16+
17+
* **Regional Dependency:** A centralized SFU requires a specific region for deployment, leading to latency issues for global users except for those in proximity to the selected region.
18+
19+
* **Scalability Concerns:** Scaling a centralized SFU to meet global demand can be challenging and inefficient, often requiring additional infrastructure and complexity.
20+
21+
### How is Cloudflare Realtime different?
22+
23+
Cloudflare Realtime addresses these limitations by leveraging Cloudflare's global network infrastructure:
24+
25+
* **Global Distribution Without Regions:** Unlike traditional SFUs, Cloudflare Realtime operates on a global scale without regional constraints. It utilizes Cloudflare's extensive network of over 250 locations worldwide to ensure low-latency video forwarding, making it fast and efficient for users globally.
26+
27+
* **Decentralized Architecture:** There are no dedicated servers for Realtime. Every server within Cloudflare's network contributes to handling Realtime, ensuring scalability and reliability. This approach mirrors the distributed nature of Cloudflare's products such as 1.1.1.1 DNS or Cloudflare's CDN.
28+
29+
## How Cloudflare Realtime Works
30+
31+
### Establishing Peer Connections
32+
33+
To initiate a real-time communication session, an end user's client establishes a WebRTC PeerConnection to the nearest Cloudflare location. This connection benefits from anycast routing, optimizing for the lowest possible latency.
34+
35+
### Signaling and Media Stream Management
36+
37+
* **HTTPS API for Signaling:** Cloudflare Realtime simplifies signaling with a straightforward HTTPS API. This API manages the initiation and coordination of media streams, enabling clients to push new MediaStreamTracks or request these tracks from the server.
38+
39+
* **Efficient Media Handling:** Unlike traditional approaches that require multiple connections for different media streams from different clients, Cloudflare Realtime maintains a single PeerConnection per client. This streamlined process reduces complexity and improves performance by handling both the push and pull of media through a singular connection.
40+
41+
### Application-Level Management
42+
43+
Cloudflare Realtime delegates the responsibility of state management and participant tracking to the application layer. Developers are empowered to design their logic for handling events such as participant joins or media stream updates, offering flexibility to create tailored experiences in applications.
44+
45+
## Getting Started with Cloudflare Realtime
46+
47+
Integrating Cloudflare Realtime into your application promises a straightforward and efficient process, removing the hurdles of regional scalability and server management so you can focus on creating engaging real-time experiences for users worldwide.

src/content/docs/calls/changelog.mdx renamed to src/content/docs/realtime/changelog.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ release_notes_file_name:
77

88
import { ProductReleaseNotes } from "~/components";
99

10-
{/* <!-- Actual content lives in /src/content/release-notes/calls.yaml. --> */}
10+
{/* <!-- Actual content lives in /src/content/release-notes/realtime.yaml. --> */}
1111

1212
<ProductReleaseNotes />

src/content/docs/calls/datachannels.mdx renamed to src/content/docs/realtime/datachannels.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,25 @@ While it is possible to send audio and video over DataChannels, it's not optimal
1111

1212
```mermaid
1313
graph LR
14-
A[Publisher] -->|Arbitrary data| B[Cloudflare Calls SFU]
14+
A[Publisher] -->|Arbitrary data| B[Cloudflare Realtime SFU]
1515
B -->|Arbitrary data| C@{ shape: procs, label: "Subscribers"}
1616
```
1717

18-
DataChannels on Cloudflare Calls can scale up to many subscribers per publisher, there is no limit to the number of subscribers per publisher.
18+
DataChannels on Cloudflare Realtime can scale up to many subscribers per publisher, there is no limit to the number of subscribers per publisher.
1919

2020
### How to use DataChannels
2121

22-
1. Create a two Calls sessions, one for the publisher and one for the subscribers.
22+
1. Create two Realtime sessions, one for the publisher and one for the subscribers.
2323
2. Create a DataChannel by calling /datachannels/new with the location set to "local" and the dataChannelName set to the name of the DataChannel.
2424
3. Create a DataChannel by calling /datachannels/new with the location set to "remote" and the sessionId set to the sessionId of the publisher.
2525
4. Use the DataChannel to send data from the publisher to the subscribers.
2626

2727
### Unidirectional DataChannels
2828

29-
Cloudflare Calls SFU DataChannels are one way only. This means that you can only send data from the publisher to the subscribers. Subscribers cannot send data back to the publisher. While regular MediaStream WebRTC DataChannels are bidirectional, this introduces a problem for Cloudflare Calls because the SFU does not know which session to send the data back to. This is especially problematic for scenarios where you have multiple subscribers and you want to send data from the publisher to all subscribers at scale, such as distributing game score updates to all players in a multiplayer game.
29+
Cloudflare Realtime SFU DataChannels are one way only. This means that you can only send data from the publisher to the subscribers. Subscribers cannot send data back to the publisher. While regular MediaStream WebRTC DataChannels are bidirectional, this introduces a problem for Cloudflare Realtime because the SFU does not know which session to send the data back to. This is especially problematic for scenarios where you have multiple subscribers and you want to send data from the publisher to all subscribers at scale, such as distributing game score updates to all players in a multiplayer game.
3030

3131
To send data in a bidirectional way, you can use two DataChannels, one for sending data from the publisher to the subscribers and one for sending data the opposite direction.
3232

3333
## Example
3434

35-
An example of DataChannels in action can be found in the [Calls Examples github repo](https://github.com/cloudflare/calls-examples/tree/main/echo-datachannels).
35+
An example of DataChannels in action can be found in the [Realtime Examples github repo](https://github.com/cloudflare/calls-examples/tree/main/echo-datachannels).

0 commit comments

Comments
 (0)