Skip to content
masterclass BuddyTech Buzz5 fresh blogs Β· every Monday

Why Our HTTP/2 Upgrade Didn't Fix the Checkout Stalls

Learn to read TCP handshakes, head-of-line blocking, and multiplexing straight off a browser waterfall and server config.

MCB Editorial

Tech Buzz Community Desk Β· 10 min read Β·

New story

Inspired by β€œHTTP1 vs HTTP2 vs HTTP3” by System Design Newsletter on daily.dev. Rewritten and expanded by MCB Editorial.

Narrated by Study Buddy Narration
Voiceover Engine β€’ Interactive Audio Sync
0:0010:00

Learning Objectives & Key Takeaways

0 / 4 Completed
Architecture Ready
100%
What you will learn
  1. A TCP or TLS handshake delays byte one no matter which HTTP version runs on top of it.
  2. HTTP/2 multiplexing kills application-layer queuing, but TCP can still block every stream on packet loss.
  3. HTTP/3 swaps TCP for QUIC, so one lost packet stalls only its own stream, not the whole connection.
  4. Enable the Waterfall column in Edge DevTools and read position as start time, never as finish order.
  5. Confirm the negotiated protocol server-side instead of guessing a root cause from a waterfall shape.

The Checkout Page That Stalled Right After We Shipped HTTP/2

During a flash sale, the team had just finished moving the load balancer to HTTP/2, expecting the checkout page's dozen or so requests to fan out in parallel the way the pitch decks promised. Instead, under real traffic, the waterfall showed a wide cluster of checkout requests all starting late together and then finishing in a staggered clump, not the clean simultaneous bars anyone was expecting.

The on-call engineer's first instinct was to blame a code regression, but application logs showed every handler returning in single-digit milliseconds. Whatever was eating the time was happening somewhere between the browser and the origin, not inside anyone's business logic, which meant the fix wasn't going to come from reading stack traces.

In the rest of this story
  1. What a Handshake Actually Costs Before Byte One
  2. Reading the Waterfall in Edge DevTools Instead of Guessing
  3. Multiplexing Fixes Ordering, Not Every Kind of Blocking
  4. Configuring Kestrel So the Server Actually Speaks What You Expect
  5. Telling the Client Which Version to Request, With a Real Fallback
2 code examples Β· 10 min read in full
Member-only story

Checking your membership…

Members read every Tech Buzz story in full, with code examples, audio and the discussion, plus every course, quiz and interview set in the Learning Dashboard.

0

Written by

MCB Editorial

Tech Buzz Community Desk. Contributing deep-dive engineering architectures, cloud paradigms, and system design insights to Master Class Buddy.