The Hidden Boundary Problem in Intelligent Systems

tfc

Hatched by tfc

May 28, 2026

10 min read

74%

0

What exactly should be allowed to know what?

A surprising amount of software design comes down to a deceptively human question: who is allowed to know what, and when? In traditional systems, that question is answered with modules, services, and interfaces. In intelligent systems, the same question reappears in a new costume: assistants, tools, retrieval, function calls, and parallel execution. The technology changes, but the architecture problem remains stubbornly familiar.

Here is the provocative claim: the real challenge is not making systems more powerful, but making their boundaries more legible. The moment a system can reach into databases, search knowledge, execute code, and call external functions at once, power is easy. Discipline is hard. Without explicit boundaries, intelligence becomes diffusion: many capabilities, no clear center of responsibility.

That is why the idea of an Aggregate matters far beyond domain modeling. An Aggregate is not just a software pattern for entity consistency. It is a way of answering a deeper question: what belongs together strongly enough to be changed as one thing, and what must remain outside the circle? Once you see that, the connection to assistants with multiple tools becomes obvious. Tool access is not architecture unless the system knows its own boundary.


The illusion of capability without cohesion

Modern assistants are often praised for breadth. They can retrieve knowledge, run code, and invoke functions in parallel. That sounds like intelligence, and in a narrow sense it is. But capability without cohesion creates a subtle failure mode: the system can do many things while failing to preserve a coherent state or decision process.

Think of a hospital where every specialist can act instantly, but no one knows who owns the patient chart. A lab order, a medication change, and a discharge decision can all happen quickly, yet the result is not care, it is fragmentation. The same thing happens in software. If an assistant can query documents, compute outputs, and call business functions simultaneously, but there is no governing boundary, the result is not a smarter system. It is a system with faster inconsistencies.

This is where the Aggregate boundary becomes more than a domain modeling detail. Inside the boundary, objects may know one another, coordinate, and change together. Outside the boundary, only the root is visible. That is not merely a restriction. It is a design statement about where truth is allowed to cohere.

Power scales easily. Coherence does not.

A useful mental model is to imagine every intelligent system as a city. Tools are roads, utilities, and transit lines. The Aggregate is the neighborhood with zoning laws. Without zoning, every building tries to be everything, and every street connects to everything else. The city becomes dynamic, but not livable. With zoning, the city can grow without dissolving into chaos.

The temptation in AI systems is to expose everything to everything. Why not let retrieval talk directly to function calls? Why not let code interpreter inspect every intermediate state? Why not let each tool act as soon as it sees an opportunity? Because once all tools can touch all states, the system loses a single center of accountability. That is exactly what the Aggregate root prevents in domain design.


The root is not the most powerful object, it is the accountable one

One of the most misunderstood ideas in domain design is that the root is important because it is central. In fact, the root is important because it is responsible. The root is the only member of the Aggregate outside objects may reference, not because it knows the most, but because it is the one place where invariant enforcement can be made reliable.

That distinction matters in intelligent systems. We often assume the best architecture is the one that gives every tool maximum freedom. But freedom is not the same as trust. A good assistant architecture does not grant universal access to every component. It routes actions through a controlled point where policies, invariants, and state transitions can be checked.

Consider an example: a customer support assistant that can answer questions, summarize account history, and issue refunds. If each tool can directly mutate account records, then every tool becomes a potential source of inconsistency. A retrieval tool might surface a stale policy. A code tool might calculate the refund incorrectly. A function call might apply a change without verifying eligibility. If, instead, the assistant treats the customer account as an Aggregate, then the account root becomes the only interface through which state changes occur. The assistant can still use multiple tools, but those tools serve the root, not bypass it.

This reframes what parallelism should mean. Parallel tool use is not a license for parallel authority. Multiple tools can work at once to gather evidence, compute options, or retrieve context. But the final act of change should funnel through a boundary that knows how to reconcile those inputs. That is the architectural equivalent of saying, “You may help me decide, but you may not independently decide for me.”

In human organizations, this is exactly how mature systems work. Finance may compute a number, legal may check compliance, operations may validate capacity, but one accountable decision point signs off. The organization is not anti collaboration. It is anti sprawl. An Aggregate root plays that same role in software, and increasingly in AI powered systems.


Parallel tools need a governing boundary, not just orchestration

The promise of assistants that can access multiple tools in parallel is seductive because it sounds like reduced latency and increased intelligence. That part is real. But orchestration alone does not solve consistency. If tools are the hands, orchestration is the choreography. What is missing is the skeleton, the set of rules that determine which motions preserve the body.

This is the deeper connection between tool enabled assistants and domain boundaries: parallelism raises the need for a stronger model of containment. The more capability you distribute, the more important it becomes to define the unit of atomic change. In other words, tool parallelism increases the value of the Aggregate, it does not diminish it.

Imagine a travel planning assistant. It can retrieve flight options, check weather, estimate costs, and call a booking function. If each of these tools independently changes shared trip state, a simple user request can yield contradictions, such as booking a flight before confirming the budget, or updating itinerary details before the user approves. A better design treats the trip as an Aggregate. All evidence gathering can happen in parallel, but the trip root is the only entity that can commit the final itinerary.

This pattern scales beyond travel. In finance, the ledger root should decide what counts as a transaction. In healthcare, the encounter root should govern the state changes that matter clinically. In product operations, the order root should arbitrate inventory changes, discount application, and fulfillment status. In each case, tools can collect facts in parallel, but the boundary determines what becomes reality.

The key is to stop thinking of tools as independent agents. They are not little minds. They are specialized senses and actuators attached to a single accountable system. Once you see them this way, you stop asking, “Which tool is smartest?” and start asking, “What is the boundary through which intelligence becomes action?”


A practical framework: sense widely, decide narrowly, change atomically

The cleanest way to synthesize these ideas is with a three part model: sense widely, decide narrowly, change atomically.

Sense widely means use as many tools as needed to gather context. Retrieval can fetch policies. Code interpreter can compute or normalize data. External functions can validate business rules or query systems of record. Parallelism belongs here. The system should be generous in collecting evidence, because evidence is cheap compared with mistaken action.

Decide narrowly means there should be one place where evidence is interpreted in light of invariants. That is the job of the Aggregate root. The root is not necessarily the smartest component. It is the component that knows which rules must never be violated, and which changes belong together. It acts as the judge, not merely another witness.

Change atomically means state transitions happen as single coherent events within the boundary. Either the order is approved or it is not. Either the refund is valid or it is rejected. Either the itinerary is committed or it remains a draft. Partial authority is the enemy of coherent state.

Intelligence is cheap when it is only advisory. It becomes expensive when it must preserve truth.

This framework is especially useful because it keeps architecture honest about where uncertainty lives. A code interpreter can be brilliant at calculations, but it should not own business truth. A retrieval system can surface relevant documentation, but it should not decide policy. A function call can execute side effects, but it should not determine whether those side effects are allowed. The root converts many inputs into one decision.

The practical payoff is enormous. You reduce accidental coupling, you make testing easier, and you create systems that can evolve without collapsing under their own flexibility. When every tool is allowed to mutate state, every new capability becomes a new risk surface. When state changes are routed through a boundary, new tools become additive rather than destabilizing.


The deeper lesson: boundaries are not limitations, they are the shape of intelligence

The most interesting thing about boundaries is that they are often mistaken for constraints. In reality, they are what make complex systems intelligible. A well designed boundary does not merely restrict behavior. It creates a place where meaning can be preserved.

This is why the Aggregate is so powerful. It says that some relationships are intimate enough to be treated as one unit, while others must remain at arm’s length. That sounds restrictive until you realize it is what allows the system to grow without losing itself. The same is true for assistants with multiple tools. Without a boundary, the system may be versatile, but it will not be trustworthy. With a boundary, it can become both.

The deeper issue is not how many tools a system can access. It is whether the system can answer three questions consistently:

  1. What belongs together?
  2. Who is allowed to change it?
  3. Where does responsibility end?

Those are not only software questions. They are organizational questions, product questions, and ultimately design questions about reality itself. Every robust system, whether human or machine, depends on distinguishing the inside from the outside.

For AI systems, this distinction is becoming more important, not less. As tools proliferate and parallel execution becomes normal, the hardest engineering problem will be keeping intelligence from leaking across boundaries it should respect. The future belongs not just to systems that can do more, but to systems that know what they are.


Key Takeaways

  • Treat boundaries as first class design objects. Do not add tools first and think about coherence later. Decide what the unit of truth is before wiring up capabilities.
  • Use parallel tools for sensing, not for ungoverned action. Let multiple tools gather evidence at the same time, but funnel state changes through one accountable root.
  • Define one place for invariant enforcement. If a rule must never be broken, there should be exactly one boundary where that rule is checked and enforced.
  • Model the root as the decision point, not the smartest component. Its job is to preserve consistency, not to know everything.
  • Ask the boundary question in every system design. What belongs together, what can be seen from outside, and what must be changed atomically?

Conclusion: intelligence without boundaries is just acceleration

We tend to celebrate systems that can reach farther, fetch faster, and call more things in parallel. But the real mark of maturity is not reach. It is restraint. A system becomes intelligent not when it can touch everything, but when it knows what must remain whole.

That is the hidden connection between domain aggregates and tool using assistants. Both are answers to the same problem: how do you let many capabilities cooperate without letting coherence dissolve? The answer is not more freedom. It is better boundaries.

So the next time a system feels powerful but brittle, do not ask only what tool is missing. Ask instead: where is the root, what is inside the boundary, and who is accountable for making many parts act as one? That question will tell you more about the system’s intelligence than any tool list ever could.

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 🐣