← Back to explorer
Example workload/workloads/realtime

Realtime

Add low-latency voice and video without operating WebRTC infrastructure yourself.

For workloads that add live audio, video, and interactive communication to an app, especially when reliability, NAT traversal, and multi-party scaling matter.

skype alternativezoom alternativegoogle meet alternativeteams alternativevideo chatvoice chatcalling appvideo conferencinglive callswebrtctelehealthvirtual classroomlive interviewsaudio rooms

Recommended primitives

RealtimeKit

core

Managed WebRTC infrastructure for voice and video calling.

Managed calling product for most teams adding voice or video

TURN / SFU

supporting

Lower-level WebRTC relay and selective forwarding components for custom real-time media apps.

Lower-level media control for expert WebRTC teams

Workers

supporting

Serverless edge functions. The entry point for most Cloudflare apps.

Token issuance, auth, and application APIs around the media layer

R2

optional

S3-compatible object storage for files, audio, images, backups, and exports.

Storage for recordings and exported session artifacts

Workers AI

optional

Run foundation models and ML inference on Cloudflare's GPU network.

Captions, transcription, and translation flows

Durable Objects

optional

Stateful single-threaded actors with strong consistency, storage, and WebSocket support.

Room coordination when app-specific state extends beyond media

Architecture notes

  • RealtimeKit should be the default path for teams adding calling as a feature.
  • TURN and SFU stay available for teams that explicitly need lower-level control or already have WebRTC expertise.
  • Workers can still own app auth, session setup, and workflow logic around the media plane.

Starter prompts

We need telehealth video visits with recording and captions.
Add live interview rooms with screen sharing to our recruiting app.
Build a tutoring platform with low-latency video and chat.

Avoid notes

Using Stream for two-way calling

Stream is optimized for one-to-many video delivery, not interactive audio/video sessions.

Consider: Use RealtimeKit or TURN / SFU for interactive media.

Over-engineering with low-level media primitives

Most teams adding video as a feature do not need to own SFU- and TURN-level architecture decisions.

Consider: Start with RealtimeKit unless the team explicitly needs lower-level control.

Resources

Try your own version

Start from one of these prompts or describe your own variation on the homepage to get a primitive recommendation.

Open the explorer