← all notes

SEP 2026 · Technical note

The system boundary is where I start debugging.

When browser, website, API, CRM and marketing platform are involved, the handoff is often more useful than the product label.

“Salesforce is broken” is rarely a useful debugging statement.

Complex journeys cross systems. Each system can be individually healthy while the overall path still fails because one side sends something the other side does not expect.

That is why I start with the boundaries: what leaves system A, what system B expects, what evidence confirms the handoff and who owns each side.

A system boundary turns a vague platform problem into a testable interface question.

The questions are simple.

What exactly leaves the upstream system?
What transport carries it?
What does the downstream system expect?
What evidence exists before the handoff?
What evidence exists after the handoff?
What happens on failure?
Who owns each side?
Can we reproduce it with a known test record?

This is useful beyond APIs.

A browser loading an embedded form is a boundary. A file import is a boundary. A warehouse sync is a boundary. So is a human approval that must happen before development can proceed.

The pattern is the same: define the contract, observe both sides and stop using the end symptom as the diagnosis.

The practical rule.

Draw the path as boxes and arrows. Then replace each arrow with a question: what must cross here, how do we know it crossed and what happens if it does not? Debug the arrows before blaming the boxes.