The Potter's First Unwedged Clay: On the Unseen Air Pockets of a Poorly Batched Request

Before a potter’s hands can coax a vase from a lump of clay, they must perform a quiet, preparatory ritual: wedging. This process of methodically kneading and cutting the clay isn’t about shaping the final product; it’s about preparing the material itself. The potter is searching for and expelling hidden air pockets—tiny voids that, if left trapped, would cause the piece to fracture catastrophically in the kiln. The final form is only as strong as the integrity of the material it’s built from.

In our own craft, we work with a different kind of material: data. And we, too, must wedge our clay. A common, often overlooked habit in front-end development is the firing off of network requests. It’s a simple, almost thoughtless action, like cutting a chunk of clay from the block. We need user data, so we request it. We need a shopping cart summary, so we request it. We need notification counts, so we request it. Each action is logical in isolation, justified by its immediate need.

But left un-wedged, these isolated requests become the air pockets in our application’s structure. Each one is a separate journey from browser to server and back again, carrying with it the overhead of headers, handshakes, and latency. Individually, they are small. Collectively, they are a hidden weakness. The user perceives this not as a single clean shape, but as a stuttering, sequential loading of page elements—a header that pops in, followed by a sidebar, followed by a badge on an icon. The experience is fractured, even if it doesn’t outright break.

The remedy is a form of digital wedging: request batching. It is the act of consciously preparing our data payloads before shaping the user’s experience. Instead of three separate calls for user, cart, and notifications, we take the time to knead these needs into a single, unified request. We create one endpoint that consolidates this data, expelling the wasteful air of redundant connections. The server processes one query, and the browser receives one cohesive response.

The result is a page built from a solid, homogeneous block of data. The interface renders with a unified stability that feels instantaneous and whole. There are no hidden voids of waiting, no sudden shifts as late-arriving data forces a reflow. The integrity of the initial load is maintained. It is the difference between a vessel that rings true when tapped and one that harbors a fatal, unseen flaw. Our habit, then, must be to never just grab the clay. We must always, always wedge it first.

Notes & further reading

A few pages I came back to while writing this: