WebRTC is the standard that lets two browsers (or apps) send audio and video directly to each other in real time — the tech behind Zoom, Google Meet, Discord voice, and every video-in-a-browser app you’ve used. It’s built into every modern browser. No plugin required.
The catch: for two clients to send packets directly to each other, they need to know each other’s public IP and be reachable. Most devices sit behind a NAT (Network Address Translation) — your home router, a corporate firewall, a mobile carrier — that hides the real IP and blocks unsolicited inbound traffic. About 30% of the internet can’t do direct WebRTC because of this. That’s where TURN and SFU come in.
TURN
Traversal Using Relays around NAT
A public relay server. When two clients can’t connect directly, both dial outbound to the TURN server (which NAT allows), and TURN forwards packets between them. Every WebRTC app on the internet has TURN configured as a fallback.
Analogy: two people in offices that block incoming calls. They both call a shared switchboard, and the operator patches them through.
SFU
Selective Forwarding Unit
A media routing server. Each client uploads its video once to the SFU. The SFU fans that stream out to every other participant. This is how any call with more than 3 or 4 people actually works — peer-to-peer meshes collapse at that size.
Analogy: a radio tower. Every DJ sends their signal to the tower once. The tower broadcasts it to every listener.
Cloudflare Realtime is the managed service that provides both. TURN and SFU running at 300+ Cloudflare edges, priced at $0.05 per GB of egress (first 1 TB free every month), with no servers to run, no regions to pick, and standard WHIP/WHEP protocols so you’re not locked in. Below is the math for why an SFU beats a mesh, what it costs vs Twilio, and how a full Realtime app fits together on Cloudflare.