A transport upgrade for the internet’s busiest apps
Facebook has migrated more than 75 percent of its internet traffic to QUIC and HTTP/3, the modern transport protocol stack that’s replacing the decades-old TCP combination. The company reports meaningful improvements across request errors, tail latency, response header size, and video playback metrics since the rollout began.
QUIC began as Google’s internal project (gQUIC) and was handed to the Internet Engineering Task Force in 2015, where it was redesigned into the protocol now heading toward RFC standardization. HTTP/3 is the corresponding HTTP layer built on top of QUIC. Together they address several weaknesses of TCP and HTTP/2: while TCP/HTTP-2 introduced stream multiplexing over a single connection, QUIC makes those streams truly independent, eliminating head-of-line blocking where one lost packet stalls everything else on the connection.
QUIC also brings modern loss recovery that outperforms most TCP stacks in poor network conditions, full encryption that prevents middlebox ossification and keeps the protocol extensible, plus QLOG, a JSON-based tracing format for inspecting transport behavior.
Building mvfst and starting internally
Facebook wrote its own QUIC implementation, called mvfst, rather than adopting an existing stack. That follows the company’s pattern of owning its protocol code, which previously produced the Proxygen HTTP libraries, the Zero protocol for mobile connections, and the Fizz TLS 1.3 implementation.
The first proving ground was internal network traffic, including proxied public traffic to Facebook. That approach flushed out bugs and let the team build QUIC awareness into the company’s network load balancer while preserving its zero-downtime release guarantees. Only after that foundation was stable did Facebook move QUIC into internet-facing deployment via Proxygen Mobile.
Dynamic requests in the Facebook app
The Facebook app was the first public target, starting with dynamic GraphQL requests that don’t include static content. Experiments showed a 6 percent reduction in request errors, a 20 percent cut in tail latency, and 5 percent smaller response headers compared with HTTP/2.
But the rollout surfaced a recurring problem: application heuristics tuned for TCP behavior misbehaved when requests got faster. In one case, a heuristic that decides how aggressively to fetch static content like images and videos was calibrated against TCP’s timing. With QUIC, response times crossed arbitrary thresholds that made the app request too much at once, ultimately slowing down News Feed loads. Error rates for TCP-served static content even rose because the app’s request patterns changed based on QUIC’s faster dynamic responses.
Making static content and video scale
Before enabling QUIC for images and videos, Facebook had to address two technical bottlenecks in mvfst: CPU efficiency and congestion control under real load. Dynamic requests have small responses that don’t stress either concern, but static content does.
The team built synthetic load tests and performance tooling, then optimized UDP packet pacing and introduced generic segmentation offload (GSO) so the stack can send batches of UDP packets efficiently. Data structures and algorithms handling unacknowledged QUIC data were also reworked.
When QUIC was switched on for all content and analyzed with input from Facebook’s video engineers, the video metrics were dramatic. Mean time between rebuffering (MTBR) improved by up to 22 percent depending on platform, video request errors dropped 8 percent, and video stalls fell 20 percent. The gains were largest on weaker networks, especially in emerging markets.

The path wasn’t smooth. The iOS and Android apps used different heuristics for estimating download bandwidth, and both could overestimate available capacity under QUIC, causing clients to request higher-quality video than the network could sustain, producing stalls. Flow control limits — the amount of data a receiver will buffer from the sender — were statically configured for HTTP/2 and implicitly tuned for TCP. Finding the right QUIC values required iterative experimentation.
Instagram, the web, and the future
Facebook applied the same incremental strategy to Instagram, starting with a small percentage of traffic and scaling up. QUIC is now live for Instagram on both iOS and Android with metrics comparable to or better than the Facebook app results. Facebook and Instagram web properties also have QUIC enabled, so users benefit as browsers add support — Chrome has already deployed HTTP/3 and IETF QUIC, and Safari is shipping it in beta. Facebook expects QUIC to eventually carry all of its internet traffic, not just the current majority.
The IETF is on track to finalize QUIC as an RFC in 2021, which will push wider adoption across websites, applications, and networking libraries. For Facebook, the protocol is less a destination than a base layer for future work on congestion control, loss recovery, connection migration, and 0-RTT connection establishment.



