<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-for-900m-users-dyatzvnes" -->

---
title: How OpenAI Delivers Low-Latency Voice AI for 900M Users
description: OpenAI serves voice AI to 900 million weekly users by splitting WebRTC infrastructure into two components: a stateless relay for packet routing at the...
canonical: https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-for-900m-users-dyatzvnes
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How OpenAI Delivers Low-Latency Voice AI for 900M Users | daily.dev
og:description: OpenAI serves voice AI to 900 million weekly users by splitting WebRTC infrastructure into two components: a stateless relay for packet routing at the...
og:url: https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-for-900m-users-dyatzvnes
og:image: https://api.daily.dev/og/posts/dyaTZVNEs.png
og:image:alt: How OpenAI Delivers Low-Latency Voice AI for 900M Users
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How OpenAI Delivers Low-Latency Voice AI for 900M Users

**[ByteByteGo](https://daily.dev/sources/bytebytego)** · 14 min read · 18 upvotes · 2 comments

## Summary

OpenAI serves voice AI to 900 million weekly users by splitting WebRTC infrastructure into two components: a stateless relay for packet routing at the geographic edge and a stateful transceiver that owns ICE, DTLS, and SRTP state. The key routing trick encodes destination metadata into the ICE ufrag field, allowing the relay to forward the first packet to the correct transceiver without a database lookup. The relay is implemented in Go using SO_REUSEPORT, thread pinning via runtime.LockOSThread, and pre-allocated buffers — avoiding kernel bypass entirely. Global Relay distributes ingress points geographically, with Cloudflare handling proximity-based signaling steering. The post also covers why SFU and TURN were evaluated and rejected for this predominantly 1:1 workload, and discusses tradeoffs including limited multiparty support and a custom infrastructure maintenance burden.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.bytebytego.com/p/how-openai-delivers-low-latency-voice>

## Community discussion

Top comments from developers on daily.dev.

**@kartiknvj** · 1 upvotes

> Encoding the destination into the ICE ufrag so the relay routes the first packet without a database lookup is the kind of detail that only shows up once you are serving voice at that scale. Splitting the stateless relay from the stateful  transceiver also gives you a clean place to put latency budgets, which matter more for voice than almost any other workload. I would love to know how they handle a transceiver failing mid-session, since rebuilding DTLS and SRTP state without the user hearing a gap is the hard part.

## Similar posts on daily.dev

- [How OpenAI delivers low-latency voice AI at scale](https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-at-scale-k9soex1od) · Hacker News · 0 upvotes · 0 comments
- [OpenAI Outlines WebRTC Architecture for Low-Latency Voice AI at Scale](https://daily.dev/posts/openai-outlines-webrtc-architecture-for-low-latency-voice-ai-at-scale-6odkdb00l) · InfoQ · 0 upvotes · 0 comments
- [OpenAI’s WebRTC Problem](https://daily.dev/posts/openai-s-webrtc-problem-dmrqc4liz) · Hacker News · 0 upvotes · 0 comments

---

Tags: [#golang](https://daily.dev/tags/golang), [#distributed-systems](https://daily.dev/tags/distributed-systems), [#webrtc](https://daily.dev/tags/webrtc)

[View this post on daily.dev](https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-for-900m-users-dyatzvnes)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How OpenAI Delivers Low-Latency Voice AI for 900M Users","url":"https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-for-900m-users-dyatzvnes","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-for-900m-users-dyatzvnes"},"datePublished":"2026-07-01T15:33:33.158Z","dateModified":"2026-07-01T16:22:47.648Z","description":"OpenAI serves voice AI to 900 million weekly users by splitting WebRTC infrastructure into two components: a stateless relay for packet routing at the...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/00879b0e40e907b87a13e2835f98e329?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/00879b0e40e907b87a13e2835f98e329?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"ByteByteGo","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ByteByteGo","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/35be29234ee14d01a9cd049c52e12753","url":"https://daily.dev/sources/bytebytego"},"commentCount":2,"discussionUrl":"https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-for-900m-users-dyatzvnes","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":18},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":2}],"keywords":"golang,distributed-systems,webrtc","timeRequired":"PT14M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ByteByteGo","item":"https://daily.dev/sources/bytebytego"},{"@type":"ListItem","position":3,"name":"How OpenAI Delivers Low-Latency Voice AI for 900M Users"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-for-900m-users-dyatzvnes","comment":[{"@type":"Comment","text":"Encoding the destination into the ICE ufrag so the relay routes the first packet without a database lookup is the kind of detail that only shows up once you are serving voice at that scale. Splitting the stateless relay from the stateful  transceiver also gives you a clean place to put latency budgets, which matter more for voice than almost any other workload. I would love to know how they handle a transceiver failing mid-session, since rebuilding DTLS and SRTP state without the user hearing a gap is the hard part.","datePublished":"2026-07-01T17:15:38.488Z","url":"https://daily.dev/posts/dyaTZVNEs#c-grd6jGxEM","author":{"@type":"Person","name":"kartik-nvjk","url":"https://daily.dev/kartiknvj","image":"https://media.daily.dev/image/upload/s--3gGgsVCw--/f_auto/v1781456774/avatars/avatar_TvTVeiMdkRCqWUDullFmy?_a=BAMAMiWQ0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}}]}
```

