The Hidden Law of Composable Systems: Nothing Scales Until Coordination Gets Cheap
Hatched by Malcolm Mason Rodriguez
Aug 21, 2026
11 min read
1 views
91%
What if the biggest obstacle to the next generation of software is not invention, but the cost of asking many small parts to cooperate?
The modern technology industry loves composability. We want documents that contain applications, financial deposits that flow through multiple strategies, and platforms where specialized modules can be assembled for almost any purpose. The promise is enormous: instead of buying a rigid product, users construct exactly what they need from interoperable pieces.
Yet composability has repeatedly arrived before its economics. The pieces may exist, the interfaces may be elegant, and the vision may be correct, but the system still fails because every act of coordination carries a tax. Someone must move data between applications. Someone must approve transactions. Someone must pay the cost of repeated execution. Someone must understand how the parts fit together.
The deeper lesson is this:
A system becomes truly composable only when it makes coordination cheaper than isolation.
This principle connects two domains that are usually discussed separately: the effort to turn the desktop into a network of compound documents, and the effort to make decentralized finance route one deposit through many strategies at low cost. Both are experiments in replacing standalone actions with coordinated systems. Both reveal why modularity alone is not enough.
The dream of software without applications
For decades, the computer has taught us to think in terms of applications. We open a word processor to write, a spreadsheet to calculate, a design tool to create, and a browser to access the rest of the world. Each application provides useful capabilities, but it also creates a boundary. Data lives inside the application, workflows are shaped by the application, and users must translate their work whenever they cross from one tool to another.
A compound document proposes a different unit of computing. Instead of beginning with an application and producing a document as its output, we begin with a document that can contain many capabilities. A page might include text, a table, a chart, a database query, a visual editor, and a live discussion. The document is no longer a passive file. It becomes a working environment.
This is a subtle but radical change. In the application centered model, software owns the context and the document is subordinate to it. In the document centered model, the context belongs to the user, while applications become temporary instruments embedded in that context.
A simple analogy is the difference between a kitchen and a meal. Traditional software gives you separate restaurants. To change from Italian food to Japanese food, you leave one establishment and enter another. A compound document gives you a kitchen with ingredients, tools, and recipes that can be combined in one place. The user does not care which tool prepared each portion. The value lies in the completed meal.
The web seems naturally suited to this vision because a web page is already a kind of compound document. It can combine text, images, forms, video, interactive code, and data from many services. Browser based versions of professional tools demonstrate that the boundary between a page and an application is becoming harder to defend.
But the history of this idea also contains a warning. Similar visions appeared decades ago, when computing companies imagined small software modules that could be arranged like building blocks. The fact that these efforts did not immediately replace native applications does not necessarily mean the concept was wrong. It may mean that the surrounding system was not ready to make composition affordable and reliable.
The problem was not merely technical. It was economic and cognitive. If every combination required manual setup, fragile integrations, incompatible data formats, and repeated authentication, then the supposedly modular future imposed more work on the user than the old application model. A system can be architecturally open while remaining practically closed.
The cost hidden inside every small action
Decentralized finance makes this hidden cost unusually visible because actions on a blockchain have explicit execution fees. Depositing into a single liquidity strategy may be manageable. Depositing into ten strategies separately can become expensive, even when the total capital is unchanged. Each transaction carries overhead, and the overhead may consume a meaningful share of the expected return.
Pooling and batching change the calculation. Rather than asking every user to perform every step independently, a system collects deposits and deploys them together during a rebalance. The same deposit can be routed across many strategies while the execution cost is shared across the pool. A user receives the benefits of multiple destinations without paying the full coordination cost of each one separately.
This is not only a clever optimization for finance. It is a general model for making composability viable.
Imagine a courier delivering packages to ten neighboring houses. If each resident hires a separate courier, the neighborhood pays ten times for routes that overlap. A coordinated delivery service can collect all packages, optimize the route, and divide the fixed cost among many recipients. The service is not valuable merely because it visits many houses. It is valuable because it amortizes coordination.
The same logic applies to software. Suppose a user wants to combine a document editor, a customer database, a charting system, and a task tracker. If each integration requires a separate export, import, login, permission review, and data cleanup, then the user bears the cost of composition. The platform may advertise interoperability, but the actual experience is a sequence of toll booths.
A successful Internet OS must therefore do more than store data in a common location. It must reduce the number of times users have to manually coordinate the components that operate on that data. The system should recognize shared context, preserve identity and permissions, route information automatically, and perform related actions together when possible.
This suggests a useful distinction between two kinds of interoperability:
- Surface interoperability means that systems can technically exchange data.
- Operational interoperability means that systems exchange data, permissions, computation, and economic responsibility with minimal user effort.
Many platforms achieve the first and fail at the second. A file can be exported from one tool and opened in another, yet the workflow remains painful. A financial protocol can technically access many strategies, yet the user is still charged for every individual action. The parts are compatible, but the system is not composed.
Why modularity alone keeps disappointing us
Modularity is often treated as an unquestionable good. Smaller components are easier to replace, specialize, and improve. But modularity creates a new problem: someone must coordinate the modules.
In a physical machine, modular parts are useful because the machine includes standards, connectors, and an assembly process. A box of unrelated components is not a machine. It is inventory. The difference is the coordination layer.
The same distinction explains why earlier attempts to reorganize computing around compound documents struggled. The vision asked users to stop thinking about applications, but it did not fully remove the responsibilities that applications had been handling. Applications were not only containers for features. They also managed state, permissions, file formats, user expectations, and the sequence of operations required to complete a task.
Removing the application without replacing those functions simply transfers complexity to the user. The user becomes the operating system.
This is one of the most important dangers in the current enthusiasm for modular software, decentralized protocols, and open platforms. Openness can produce a world in which everything is technically possible but nothing is effortless. The burden of integration moves downward, from institutions to teams, from teams to individuals, and eventually from software to human attention.
A platform deserves to be called composable only when it absorbs that burden. It should make the common path automatic while preserving the ability to customize the uncommon path. In this sense, the best composable systems are not those with the most modules. They are those that hide the most unnecessary coordination.
The user should experience the freedom of many components and the simplicity of one coherent system.
That is the paradox. Composition expands the number of possible arrangements, but usability depends on reducing the number of decisions required to create a useful arrangement.
The coordination layer is the real product
This leads to a broader framework for evaluating new platforms. Instead of asking only what components they expose, ask four questions.
1. What is the unit of work?
Is the system organized around an application, a file, a transaction, a workflow, or an intention? The more closely the unit matches what the user is trying to accomplish, the less translation is required.
A person does not fundamentally want to open three applications. They want to prepare a budget, publish a report, rebalance an investment, or plan a project. Systems become more powerful when they organize around these outcomes rather than around the boundaries of the tools involved.
2. Where does state live?
If every application maintains its own version of the truth, composition will remain fragile. Shared, structured state allows multiple tools to act on the same underlying object without forcing users to copy and reconcile information.
A customer record should not become four competing customer records merely because four teams use different interfaces. A financial position should not require a separate manual picture for every strategy that contains it. Common state is the substrate of common context.
3. Who pays the coordination cost?
The cost may appear as money, time, attention, latency, or risk. A service that is free in dollars may still be expensive if it requires constant monitoring. A platform that offers many integrations may still be costly if every update can break a workflow.
The best systems make these costs visible, then reduce them through batching, caching, defaults, reusable permissions, and shared infrastructure.
4. What happens when the system grows?
Composition should create economies of scale. Adding a new user, strategy, document type, or module should not multiply the cost of all existing relationships. If every new component requires a new custom connection to every other component, complexity grows explosively.
A strong coordination layer uses common protocols and pooled operations so that growth increases capability faster than it increases overhead. That is the software equivalent of a well designed transit network: more destinations become available without requiring every passenger to plan a private route.
These questions reveal why batching in finance and compound documents in software belong to the same family of ideas. Both seek to transform a collection of isolated operations into a coordinated environment. Both succeed only if the system handles the repetitive work that composition creates.
Designing for cheap coordination
The practical implication is not that every product must become a universal platform. Universal systems often become vague, slow, and difficult to govern. The implication is that product designers should identify the recurring coordination costs in their domain and build around them.
For a software workspace, that might mean allowing multiple tools to operate on the same structured object. A project brief could automatically expose its deadlines to a calendar, its assumptions to a decision log, and its metrics to a dashboard. The user should not have to recreate the same information in each interface.
For a financial platform, it might mean pooling actions that would otherwise be repeated across users or strategies. The system can use rebalancing windows, grouped execution, and shared routing so that complexity is handled once rather than charged repeatedly to every participant.
For an organization, it might mean creating a common vocabulary for goals, customers, risks, and decisions. Without shared objects, every department develops its own local application and forces others to translate. The organization appears to have many tools, but really has many small islands connected by human labor.
There is also a governance dimension. The more a system coordinates on behalf of users, the more important transparency becomes. Automation should not mean opacity. Users need to know what is being combined, which permissions are active, how costs are allocated, and what happens when a component fails.
The ideal coordination layer is therefore not a black box that silently controls everything. It is a visible layer of defaults, explanations, and escape hatches. It makes the ordinary path easy without making the system impossible to inspect.
Key Takeaways
-
Measure coordination cost, not just feature count. Count the clicks, transfers, approvals, fees, permissions, and decisions required to combine your tools or strategies.
-
Choose a user centered unit of work. Organize around outcomes such as preparing a report or managing a position, rather than forcing users to navigate the boundaries of your internal modules.
-
Create shared state wherever possible. Common structured objects reduce duplicate entry, synchronization failures, and the need to translate between applications.
-
Batch repeated operations. Whenever many users or components perform similar actions, look for opportunities to pool execution, share infrastructure, or schedule coordinated updates.
-
Hide complexity without hiding consequences. Automate routine coordination, but clearly expose permissions, costs, assumptions, and failure modes.
The future of computing will not be decided by whether applications disappear, nor by whether every financial strategy can be connected to every other one. It will be decided by a more practical question: who absorbs the cost of making the connections useful?
If the answer is the user, composability becomes a slogan. People retreat to familiar applications, isolated accounts, and manual workarounds because the supposedly open system is harder to use than the closed one.
If the answer is the platform, a different future becomes possible. Documents can become living environments. Deposits can become coordinated portfolios. Software modules can behave less like separate products and more like capabilities summoned by context.
The most important operating system of the future may not be the thing that launches applications. It may be the invisible machinery that decides when separate actions belong together, performs them collectively, and makes the savings available to everyone. The breakthrough will not be unlimited choice. It will be making choice inexpensive enough to use.
Sources
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 🐣