The cumulative ACK stops at a missing range while SACK describes later bytes already received.

SACK reports received ranges beyond a gap so recovery can target missing data

A TCP cumulative acknowledgment identifies the next byte expected in order. If a segment is missing but later bytes arrive, that acknowledgment cannot advance across the hole. Selective Acknowledgment, or SACK, adds information about received byte ranges beyond the cumulative boundary. It helps a sender distinguish missing data from data already queued at the receiver, improving the information available to its recovery algorithm. ...

September 11, 2027 · 6 min · XB Field Notes
Observe-decide-act boxes beside the message: Resume a session, not always 0-RTT.

TLS session resumption saves a round trip

Saving a round trip depends on the protocol and early-data mode. In TLS 1.3, an ordinary full handshake and a resumed handshake without early data normally both take one TLS round trip. Resumption can still reduce certificate transmission and authentication work. The title is not a promise that enabling tickets makes every HTTPS request start one RTT sooner. ...

August 8, 2027 · 5 min · XB Field Notes
Observe-decide-act boxes beside the message: Trace each phase, separate reuse.

TLS handshakes add latency you can shrink

HTTPS latency combines several stages, and a warm request may avoid some without making cryptography faster. DNS, connection acquisition, TCP setup, TLS authentication, server work, and response transfer have different clocks. First determine which stages actually ran. Request duration alone cannot distinguish an existing connection from a new connection that resumed a TLS session. ...

June 28, 2027 · 6 min · XB Field Notes
Reusing an open TCP connection across several HTTP requests.

HTTP keep-alive reuses one TCP connection

HTTP persistence lets several request and response exchanges use one connection. That can avoid repeated TCP setup and, for HTTPS, repeated TLS negotiation. The benefit depends on latency, request size, and whether another usable connection already exists. Persistence does not make application work disappear, nor does it promise that a socket will remain open indefinitely. ...

May 28, 2027 · 4 min · XB Field Notes
A query plan drawn as a route from a sequential scan through an index to the result, with the slow step highlighted.

EXPLAIN plans reveal the route of a query

A slow query is a route problem before it is a tuning problem. EXPLAIN shows the planned route node by node, so the fix targets the step that actually costs time rather than a guess. Read the plan as a route map EXPLAIN prints a tree, and the root node is the answer while the leaves do the real work. Each node names an operation, a row estimate and an estimated cost, so instead of guessing you can look for the outlier: a scan whose row estimate dwarfs the number it eventually returns, or an estimate that is wildly off what the query actually touches. The arrow of blame is worth reading the way a map is: follow the node that accounts for most of the work, not the first one listed in the output. Comparing EXPLAIN alongside EXPLAIN ANALYZE shows the gap between what the planner predicted and what actually ran, which is where slow queries usually hide. ...

May 21, 2027 · 6 min · XB Field Notes
Bound the work before it queues, beside an observe-decide-act flow with orange arrows.

Load shedding protects the system

Load shedding deliberately refuses some work when accepting everything would threaten useful service. The aim is to preserve capacity for work that can still complete, not to promise that every accepted request will be fast or important. Rejection is itself work, so the admission point and its cost matter as much as the threshold. ...

May 16, 2027 · 6 min · XB Field Notes
A stored snapshot of a query's result that can be refreshed later.

A materialized view stores a query's result for reuse

A materialized view stores the result of a defining query so later reads can access those stored rows. It moves computation from every read into refresh operations, which can benefit repeated reporting queries. The tradeoff is an explicit freshness boundary and another relation to maintain; neither instant reads nor automatic synchronization with the source tables is guaranteed. ...

April 26, 2027 · 5 min · XB Field Notes
Observe-decide-act boxes beside the message: Count every byte, before accepting.

Request body limits set a boundary

A request-body limit bounds accepted input, not merely the number written in Content-Length. Enforce it while consuming the body, before committing application effects. Compressed input needs separate limits for encoded and decoded bytes. A 413 response is useful only if the expensive allocation or irreversible write has not already happened. ...

April 18, 2027 · 6 min · XB Field Notes