Cards/NetworkingSystem Design · Day 12Aug 12, 2026

Why The First Request Is Always Slow

Why The First Request Is Always Slow — system design card, day 12, networking

Before your server sees a single byte, three conversations already happened.

StepCost
DNS lookup1 round trip
TCP handshake1 round trip
TLS handshake1–2 round trips
Total~4 round trips before GET /

On a 100ms connection, that's 400ms of pure introduction. Your code hasn't run. Your database hasn't been touched.

Then the connection closes and the next request does it all again.

The fix isn't faster code. It's stop reintroducing yourself: keep-alive, connection pools, HTTP/2 multiplexing, TLS session resumption. Pay the setup once, reuse it thousands of times.

This is also why a "quick internal API call" between two of your own services is rarely quick. Every new connection restarts the ritual.

Trivia panel used on the card:

  • TLS 1.3 — handshake 1 round trip (from 2 in 1.2); supports 0-RTT resumption for repeat connections
  • QUIC / HTTP3 — merges transport and TLS handshakes; fresh connection is 1 round trip, not 3
  • Link back — only idempotent requests belong in 0-RTT (see Day 9); 0-RTT is unsafe for non-idempotent requests due to replay risk

Most slowness isn't the work. It's everything you do before the work.