The Hidden Law of Fast Systems: Move Less, Predict More

Jaeyeol Lee

Hatched by Jaeyeol Lee

May 29, 2026

9 min read

86%

0

The real race is not speed, it is coordination

What if the biggest reason software feels slow is not that computers are weak, but that we keep asking them to negotiate too much?

That question sounds almost too simple, but it points to a deep pattern that shows up everywhere in modern systems. Whether you are sending web traffic across the internet or asking a database to find meaning inside a vector space, the winning strategy is rarely brute force. The real breakthrough comes from reducing the amount of back and forth, the amount of waiting, and the amount of ambiguity.

In one domain, faster protocols changed the rules by letting many requests travel together, in a more efficient pattern, with less idle time between steps. In another, a database extension made vector search feel dramatically faster by keeping the work close to where the data already lives, instead of shuttling it out to a separate system. These are not separate stories. They are expressions of the same law: systems become fast when they compress coordination.

That law matters because most software is not limited by raw computation. It is limited by friction. Friction appears when a system spends its time waiting for acknowledgments, copying data around, translating formats, or crossing boundaries it does not need to cross. The deeper challenge is not to make each individual operation magical, but to make the whole conversation shorter.

Why latency is really a story about distance

When people talk about performance, they often talk as if time were a single number. But time in distributed systems is layered. There is the time to process a request, the time to move data, the time to establish trust, the time to synchronize state, and the time to recover from uncertainty. The painful part is that these costs accumulate in silence.

Think of a restaurant kitchen. A single chef can cook quickly, but if every plate requires a phone call to the storage room, a signature from accounting, and a trip to a different building to get seasoning, the meal becomes slow for reasons that have little to do with cooking. The same is true in software. Many systems are not slow because the core operation is hard. They are slow because every operation is surrounded by administrative overhead.

This is why modern transport protocols and modern data infrastructure end up converging on the same principle. They try to reduce the number of round trips and increase the amount of useful work per trip. In web transport, that means streaming more efficiently over fewer connections, handling multiple requests without unnecessary startup penalties, and recovering gracefully from packet loss. In vector search, that means keeping search close to the data, avoiding glue code, and letting the database participate directly in the operation instead of using it as a passive warehouse.

Fast systems are rarely the ones that do more. They are the ones that ask less.

That may sound paradoxical, but it is the heart of the matter. The more a system can predict, batch, and localize, the less time it wastes asking permission from its own parts.

The hidden cost of making systems talk to each other

There is a seductive pattern in software architecture: if one tool is good and another tool is good, connect them. On paper, this looks like flexibility. In practice, it often creates a tax on every future action.

Every boundary introduces translation. A query becomes a payload. A payload becomes an API call. An API call becomes a network packet. A network packet becomes a retry when something goes wrong. If the answer comes from a separate service, there is also orchestration, authentication, serialization, and monitoring. None of these are useless, but together they create a system that is always negotiating with itself.

The most expensive part of many workflows is not the computation, but the handshake. That is true whether the handshake is between browser and server or between application and database. Once you see this, performance stops looking like a pure engineering problem and starts looking like a systems design problem: how many conversations does a user action require?

This is where the connection between network protocols and vector search becomes especially revealing. Faster HTTP transport protocols do not merely accelerate file transfer in a narrow sense. They change the shape of application design by making multiplexed communication and more efficient recovery possible. Likewise, a native vector search capability in a database does not merely shave milliseconds off retrieval. It changes the architectural default from external coordination to internal execution.

The key idea is not that one layer should do everything. The key idea is that the boundary itself is often the bottleneck. When a task crosses too many boundaries, the system stops behaving like a coherent machine and starts behaving like a committee.

Locality beats cleverness more often than we admit

A useful mental model here is the principle of locality. Locality means placing computation where the relevant state already exists, or at least close enough that the system does not spend most of its time moving state around.

Imagine two libraries. In the first, every time you want a book, you must send a request to another city, wait for a courier, and then return the book after each use. In the second, the books are already on the shelf beside you, and the librarian can answer immediately. The second library is not smarter. It is more local.

Locality is why databases became programmable platforms rather than just storage engines. It is why protocols evolved to reduce connection churn. It is why caching works. It is why indexes exist. And it is why a vector search that lives inside the database can often outperform a setup that sends embeddings to a separate service for matching. The improvement is not only about algorithmic speed. It is about eliminating the geometry of delay.

This creates a useful rule of thumb:

If a task repeatedly needs the same data, bring the task to the data, not the data to the task.

That rule sounds obvious until you see how many architectures violate it. Teams often separate concerns so aggressively that they also separate the work from the context it needs. The result is a clean diagram and a messy runtime.

Locality also explains why some optimizations age better than others. Tricks that merely reduce CPU cycles often matter less than structural changes that reduce movement. A system can be computationally efficient and still feel slow if it spends too much time crossing the room.

Prediction is the other half of speed

There is a second principle at work here, and it is just as important as locality: prediction.

A system that can predict what comes next can preemptively allocate resources, reuse connections, batch requests, and avoid idle time. In other words, prediction converts uncertainty into scheduling. This is one reason modern web transport protocols matter so much. They are not just about moving bytes faster, they are about enabling a network stack to behave with more foresight and less waste.

Prediction is also what makes vector search useful in the first place. Embeddings are a way of translating meaning into a geometry that machines can search efficiently. Instead of searching for exact strings or handcrafted rules, the system predicts relatedness through proximity. It is a form of compression: many possible interpretations are reduced into a space where similarity can be computed quickly.

This suggests a broader insight. The fastest systems are often the ones that move from reactive coordination to predictive coordination. They do not wait for each step to reveal itself. They anticipate the shape of the next step and prepare accordingly.

That does not mean prediction eliminates uncertainty. It means uncertainty is handled upstream, where it is cheaper. A transport layer that expects multiple in flight requests is less brittle than one that treats every exchange as a fresh negotiation. A database that can perform semantic search internally is less brittle than one that must export data to another service for every retrieval decision.

Speed is what happens when a system can guess the future well enough to stop asking the present for permission.

The architecture of less friction

Once you see coordination as the true scarcity, the design questions change. Instead of asking, "How do we make this one call faster?" you start asking, "How do we make the whole path shorter?" That shift is powerful because it moves optimization from the microscopic to the systemic.

There are three questions worth asking of any architecture:

  1. How many round trips does this action require?
  2. How many boundaries does the data cross?
  3. How much of the next step can be predicted in advance?

These questions apply to a browser loading a page, an AI application retrieving context, or an analytics dashboard querying a database. If the answer to any of them is high, you probably have a coordination problem disguised as a technology problem.

A concrete example helps. Suppose you are building a support tool that searches customer tickets using embeddings. One approach is to store embeddings in one system, query them from an application server, then fetch ticket details from the database, then reassemble the result, then rank it again, then return it to the UI. Another approach is to keep the vector capability near the tickets themselves and let the database resolve the search in one place. The second architecture is not just faster. It is easier to reason about, easier to secure, and less likely to fail in weird ways.

The same logic appears in web delivery. When a protocol can reuse connections intelligently, handle many streams simultaneously, and minimize repeated setup costs, the application feels snappier even before the code above it changes. The transport layer is quietly doing architectural work. It is compressing the path between intent and response.

This is a profound lesson for builders: performance gains are often architectural before they are algorithmic. The best optimizations do not decorate a bad shape. They change the shape.

Key Takeaways

  • Count conversations, not just milliseconds. If an action requires multiple services, handoffs, or retries, the architecture may be slower than it looks.
  • Prefer locality over distribution when the task is repetitive. Put computation near the data when possible, especially for search, retrieval, and ranking.
  • Treat prediction as a performance feature. Systems that can anticipate the next step can batch, reuse, and streamline work.
  • Look for boundary costs. Serialization, network hops, authentication, and orchestration can dominate the real cost of an operation.
  • Optimize the shape of the system, not only the speed of its parts. A simpler path is often the fastest path.

The future belongs to systems that waste less attention

There is a final way to think about all this: fast systems are not merely efficient machines. They are systems that waste less attention. They do not force every part to keep asking what happens next. They reduce uncertainty, shorten paths, and place action where it can happen with the least resistance.

That is why transport protocols and database search methods, though they live at different layers of the stack, reveal the same truth. The deepest performance improvements come from turning coordination into structure. When the system is structured well, work flows without ceremony.

In that sense, speed is not about racing. It is about removing the need to race at all. The best systems feel instant because they have already done the hard part before you noticed it was hard.

And that reframes a larger design philosophy: whenever software feels sluggish, the question is not only, "How do we make this faster?" The better question is, "What unnecessary conversation is this system having with itself?" Once you can answer that, the path to speed usually becomes obvious.

Sources

← Back to Library

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)

Start Hatching 🐣
The Hidden Law of Fast Systems: Move Less, Predict More | Glasp