---
title: "OpenAI's WebRTC Problem"
description: "The author of MoQ argues that WebRTC is the wrong foundation for voice AI, and that QUIC handles dropped packets, setup and load balancing better."
type: "article-summary"
url: "https://tatolab.com/blog/moq-openai-webrtc-problem"
site: "Tatolab"
original_published: 2026-05-06
original_author: "kixelated"
source: "moq.dev"
source_url: "https://moq.dev/blog/webrtc-is-the-problem/"
summary_by: "Tatolab"
tags: ["MoQ","WebRTC","Voice AI"]
---

# OpenAI's WebRTC Problem

> The author of MoQ argues that WebRTC is the wrong foundation for voice AI, and that QUIC handles dropped packets, setup and load balancing better.

kixelated · moq.dev · 2026-05-06

This is Tatolab's summary of an article from moq.dev. We didn't write it; the original has the full piece. Read the original on moq.dev: https://moq.dev/blog/webrtc-is-the-problem/

## Our summary

Written in response to OpenAI's post on running voice AI at scale, this piece argues that WebRTC is the wrong foundation for it. WebRTC drops audio to keep latency low, when a user would rather wait 200ms for an accurate prompt; browsers won't retransmit lost audio; playback is timed by arrival rather than timestamps; and audio a GPU generates faster than real time can't be buffered ahead. Each connection also needs its own port and around eight round trips to set up, which pushes operators like OpenAI into custom relays. The author's suggestion is to start with WebSockets, and move to QUIC (for example MoQ over WebTransport) once you need to drop or prioritize packets: QUIC sets up in about one round trip, its connection IDs let one port serve many connections, and QUIC-LB and anycast make load balancing stateless. He concedes that MoQ's caching and fan-out add little for one-to-one audio, and that he's judging OpenAI's system from the outside.

[Read the original on moq.dev](https://moq.dev/blog/webrtc-is-the-problem/)

## Stream anything to your agents

Tatolab turns anything into a stream behind an agent-friendly API. Every stream can be used by your agents, and each one is reachable by URL, through your own private MoQ relays or our public relay providers.

[Install](https://tatolab.com/docs/install) · [How it works](https://tatolab.com/#how-it-works)
