Video conferencing runs over UDP, not TCP. TCP retransmits lost packets, which adds latency: waiting for a retransmit before playing the next frame makes real-time audio and video stutter. UDP drops lost packets. The application must handle loss itself — and must do so in under 20ms to stay imperceptible. Packet loss concealment is the set of techniques for making packet loss invisible or inaudible to users.
Why UDP TCP’s retransmission is fine for file transfer: it doesn’t matter if a packet arrives 200ms late as long as it arrives.
A two-person WebRTC call is peer-to-peer: Alice sends video directly to Bob and vice versa. A ten-person call can’t work the same way: each participant would need to send 9 video streams and receive 9 streams, consuming 9x the upload bandwidth of a one-to-one call. Group video calls require a media server. There are two architectures: SFU (Selective Forwarding Unit) and MCU (Multipoint Control Unit). The choice determines server cost, client CPU usage, and call quality.
Two browsers want to send video directly to each other. They can’t just open a TCP connection: they’re behind NAT, firewalls, and don’t know each other’s public IP addresses. WebRTC solves peer-to-peer media transport. But before peers can connect, they need a signaling server to exchange connection metadata. WebRTC handles the media; signaling handles the handshake.
The Signaling Problem WebRTC is transport-agnostic about signaling: it doesn’t specify how peers find each other or exchange connection parameters.
When your location changes, every friend who has you in their Nearby Friends list needs to know. At 10 million active users each with 200 friends, a single location update could trigger 200 downstream notifications. At 333,000 updates per second, that’s 66 million fan-out operations per second. This is location fan-out: propagating position changes to all interested subscribers efficiently.
Why This Is Different From Chat Fan-Out Chat fan-out sends one message to N subscribers.
A popular Twitch stream has 200,000 concurrent viewers. Every one of them can send chat messages. A message from one viewer needs to reach all other viewers within a second. That’s fundamentally different from the fan-out problem in a news feed, and the solutions are different too.
Why News Feed Fan-Out Doesn’t Apply News feed fan-out is about delivering content to followers: write to each follower’s timeline, or read and merge at request time.