The Hidden Cost of Waiting: Why Great Systems Are Built by Eliminating Choke Points

Mert Nuhoglu

Hatched by Mert Nuhoglu

Jul 08, 2026

9 min read

86%

0

The most expensive thing in a system is not the component you buy

What if the real bottleneck in building ambitious systems is not engineering complexity, capital, or even talent, but waiting?

That question sounds almost too simple. Yet in many of the most interesting systems, whether hardware or software, progress dies in the space between a decision and the thing you need to make that decision real. A satellite design is useless if one critical part takes a year to arrive. A data platform is fragile if every message depends on someone remembering the hidden schema in a random service. In both cases, the system is not failing because of the idea. It is failing because of choke points.

The deeper insight is this: scaling is not primarily about doing more, it is about making dependence explicit and short-lived. If a process depends on a scarce external gatekeeper, it slows down. If a software system depends on implicit knowledge scattered across code, it becomes brittle. The same organizational disease appears in both worlds. Hidden dependencies turn ambition into delay.

The strongest systems do something counterintuitive. Instead of optimizing around the choke point, they remove it entirely. They do not merely work harder within constraints. They redesign the system so the constraint stops being a constraint.


Every system has a bottleneck, and every bottleneck has a politics

A bottleneck is not just a technical problem. It is a power structure.

In hardware, a single component with a 12 month lead time can quietly control the entire product roadmap. You can have engineers, funding, and customer demand, but if you cannot get a reaction wheel, separation system, or propulsion component on time, the whole architecture bends around that delay. In software, the equivalent bottleneck may be a schema buried inside application code, a compatibility rule nobody fully documents, or a data pipeline that only works because one team member remembers its quirks.

This is why bottlenecks are so dangerous: they do not merely slow delivery. They shape behavior. Teams begin to optimize for the bottleneck instead of the product. They start accepting suboptimal designs because the “realistic” design is the one that can survive the waiting period. The system becomes a monument to what was easiest to source, not what was best to build.

A bottleneck does not just limit throughput. It rewrites ambition into accommodation.

There is a deeper organizational pattern here. Once a choke point becomes normal, people stop seeing it as a choice. They call it process. They call it maturity. They call it how things work. But often it is just an unchallenged dependency.

That is why the best builders are slightly suspicious of any workflow that requires permission from a scarce external actor. They ask: is this constraint intrinsic, or merely inherited? Is this latency necessary, or just accepted? Is this fragility a law of nature, or an artifact of poor abstraction?


Hardware and software are fighting the same enemy: implicit dependencies

At first glance, satellites and schemas seem unrelated. One is physical, expensive, and slow. The other is digital, abstract, and malleable. But both are governed by the same principle: the more hidden the dependency, the harder the system is to scale.

In hardware, hidden dependencies show up as supply chain surprises. A design may look elegant until one component reveals a 12 to 18 month lead time. Then the product is no longer a design problem, it is a dependency problem. If the organization cannot source key subsystems quickly, it must either wait or vertically integrate. Vertical integration is not always about control for its own sake. Sometimes it is about reclaiming the ability to move.

In software, hidden dependencies show up as schema drift, incompatible serialization, and brittle data contracts. Kafka was created in part because messages needed an id to refer to the exact schema version with which they were written. That sounds like an implementation detail, but it reveals a profound truth: a message without a schema is not really independent data, it is a future debugging session.

The lesson is universal. Systems become scalable when the meaning of their parts is captured explicitly and stored close to the thing itself. When the meaning lives in people’s heads, in ad hoc code, or in a supplier’s backlog, the system may function, but it cannot compound reliably.

A useful mental model is this: every system has a semantic supply chain.

In a physical supply chain, the flow is materials, components, and assemblies. In a semantic supply chain, the flow is meaning, contracts, and compatibility.

Both can be broken by a single missing link. Both can be improved by making the critical dependency first class, visible, and controllable.


The secret to scaling is not more speed, it is less waiting

Most people think scaling means increasing capacity. But in practice, scaling often means something more subtle: reducing the time between intention and execution.

A company that waits 12 months for a critical part cannot iterate quickly, no matter how talented its engineers are. A data platform that hides schema assumptions in code cannot safely change, no matter how much compute it has. Speed is not only about how fast work is done. It is about how little work is blocked by uncertainty.

This leads to an important distinction between throughput bottlenecks and coordination bottlenecks.

  • A throughput bottleneck limits how many units can pass through a step.
  • A coordination bottleneck limits how confidently the next step can begin.

The first is visible in factories and queues. The second is more insidious. It shows up when teams hesitate because dependencies are unclear, when integrations require tribal knowledge, or when every change must be manually checked against a moving target.

Kafka’s design points toward a solution to the coordination bottleneck: preserve the exact schema context with the data itself. That way, downstream systems do not have to guess. They can deserialize safely, process data consistently, and evolve independently. In other words, you reduce waiting not by asking people to work faster, but by making the system less ambiguous.

The hardware analogue is equally powerful. If a spacecraft builder cannot wait for off-the-shelf components, the rational response is not merely to complain about suppliers. It is to ask which dependencies can be redesigned, in-house, or standardized so that the build cadence is controlled internally. The product begins to accelerate when the builder stops renting its critical path.

This is why some of the best organizations appear obsessive about building what others would buy. They are not fetishizing control. They are buying time.


Why vertical integration and schema discipline are the same move

Vertical integration in hardware and schema discipline in software may seem like different strategic choices, but they are expressions of the same underlying move: own the contract that determines your pace.

In hardware, owning the contract may mean building radios, propulsion systems, or separation hardware internally because these parts are on the critical path. The benefit is not just margin capture. The benefit is design freedom. When the team controls the subsystem, it can iterate faster, reduce external uncertainty, and avoid being trapped by vendor timelines.

In software, owning the contract means treating schemas as a first-class citizen rather than an afterthought. If schemas are centralized, versioned, and explicit, then producers and consumers can evolve without breaking one another. If they are implicit, every service becomes a hostage to the others’ implementation details.

The parallel is striking:

  1. A vendor dependency is to hardware what an implicit schema is to software.
  2. Lead time is to spacecraft what incompatibility is to data pipelines.
  3. Vertical integration is to manufacturing what schema governance is to streaming.

Both strategies impose discipline, but not bureaucratic discipline. They impose architectural discipline. They force the organization to identify the few places where confusion is most costly and make those places explicit.

There is also a subtler benefit: control over critical interfaces creates a culture of compounding improvement. When you build the part yourself, you can improve it with every iteration. When schemas are treated as infrastructure, you can evolve the entire ecosystem with confidence. In both cases, the organization stops being a passive consumer of constraints and becomes an active shaper of them.


The real prize is not ownership, it is optionality

This is where many companies misunderstand the point.

They think the lesson is “build everything yourself.” That is too crude. The real goal is not maximal ownership. The real goal is optionality. You want the freedom to choose the design that serves the mission, not the design that your dependencies permit.

Optionality comes from shortening the critical path. If you can source a part quickly, or generate it internally, you can change the design more often. If you can trust a schema contract, you can split services, add consumers, or evolve payloads without fear. Optionality is what turns an organization from a static system into a learning system.

Think about a restaurant kitchen. If every dish depends on one chef who personally remembers substitutions, the restaurant can survive, but it cannot scale gracefully. If recipes, prep steps, and station responsibilities are explicit, the kitchen can add staff, change menus, and absorb demand spikes. The kitchen did not become magical. It became legible.

That is the deeper point. Scalable systems are legible systems.

Legibility means the important rules are visible, documented, and enforced by the system itself rather than by memory or heroics. In hardware, that may mean controlling your supply chain for critical subsystems. In software, it may mean centralized schemas and versioning. In organizations, it may mean reducing dependencies on individual experts for core workflows.

The best systems are not just efficient. They are readable by the next person who has to extend them.


Key Takeaways

  • Find the critical path first. Ask which component, contract, or dependency would slow the entire system if it were delayed or misunderstood.
  • Make meaning explicit. In software, store schemas and versions with the data. In operations, document the rules that currently live in people’s heads.
  • Treat waiting as a design flaw. If a key dependency takes months, do not accept it as normal. Investigate whether vertical integration, standardization, or redesign can remove it.
  • Optimize for optionality, not just control. The goal is to preserve the ability to change quickly, not to own everything for its own sake.
  • Measure friction, not only throughput. A system can have high capacity and still be slow if every decision requires coordination with a hidden dependency.

The systems that win are the ones that can stop asking permission

The most important insight in both hardware and software is that progress is often blocked not by the main task, but by whatever sits between intention and execution. A satellite cannot scale if it waits on a supplier’s schedule. A data platform cannot scale if every message carries ambiguity about how it should be read.

Once you see this, a lot of strategy changes shape. You stop asking, “How do we do more?” and start asking, “What are we waiting on?” You stop treating dependencies as background details and start treating them as the main event. You stop celebrating complexity management and start designing for independence.

That is the real common thread here. The strongest systems are not simply fast. They are self-determining. They do not repeatedly ask outside forces for permission to move. They encode their own rules, own their critical interfaces, and cut the waiting out of the loop.

And that may be the most useful definition of scale there is: not bigger, not busier, but less beholden to the things that used to slow it down.

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 🐣