> For the complete documentation index, see [llms.txt](https://bert.gitbook.io/bert-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bert.gitbook.io/bert-documentation/getting-started/creating-your-first-system/step-9-add-boundary-subsystems.md).

# Step 9: Add Boundary Handlers

## How Does Your System Manage Its Interfaces?

You've validated that your system's inputs and outputs make sense. Now it's time to look inside and understand HOW your system actually works. Every interface you've created needs a specialized subsystem to handle it - these are your **boundary handlers**.

Boundary handlers are subsystems that manage your system's connections to the external world. They're the specialized components that receive inputs, deliver outputs, and manage waste - each one linked to a specific interface.

## Creating Boundary Handlers

For each interface you've created, add a boundary handler subsystem:

**Click the green circle above each interface** to create its handler subsystem.

<figure><img src="/files/W1EyHJaUGNjIS0G5a9N5" alt="" width="375"><figcaption></figcaption></figure>

**Notice the visual change**: Your system turns from black to white - you've moved from "black box" (external view) to "white box" (internal view) analysis.

<figure><img src="/files/Q68fZA31s2QO3gIgfmHf" alt="" width="375"><figcaption></figcaption></figure>

## Defining Your Boundary Handlers

**Create handlers for ALL your interfaces** - input, output, and waste.

When you click on each handler subsystem, give it a name that reflects what it does:

**Examples from our model library:**

* **Cell**: "Membrane Transport" (input handler), "Secretion Vesicles" (output handler), "Lysosome" (waste handler)
* **Ecosystem**: "Root Uptake" (input handler), "Predation Interface" (output handler), "Decomposer Network" (waste handler)
* **Solar Panel**: "Light Absorption Layer" (input handler), "Power Conditioning" (output handler), "Heat Dissipation" (waste handler)
* **Organization**: "Procurement" (input handler), "Sales & Delivery" (output handler), "Waste Management" (waste handler)
* **LLM**: "Prompt Processing" (input handler), "Response Generation" (output handler), "Error Handling" (waste handler)

<figure><img src="/files/BATAgkcdUjt7uuKyI61Q" alt="" width="375"><figcaption></figcaption></figure>

## Why Boundary Handlers Matter

Boundary handlers reveal:

* **Specialization**: How your system dedicates specific components to managing external relationships
* **Interface Design**: What capabilities your system needs at each boundary point
* **Coordination**: How your system organizes its interactions with the environment

Every interface requires a specialized handler. Systems that try to manage all external interactions through general-purpose components tend to be inefficient and fragile. Good systems have dedicated boundary handlers for each type of external relationship.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://bert.gitbook.io/bert-documentation/getting-started/creating-your-first-system/step-9-add-boundary-subsystems.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
