Integration Architecture

Nobody Wrote It Down: Documenting an Integration Estate Before You Move It

Nobody Wrote It Down: Documenting an Integration Estate Before You Move ItCC

The short version

You cannot migrate what you cannot describe, and most integration estates have never been described — the schema says what a message looks like, not what happens if it arrives late, malformed, or twice. Documentation is now appearing as a funded, staffed workstream on real modernization programmes, which is the right instinct badly executed most of the time. The method that works: start from observed traffic rather than the admin console, capture four layers per flow (what exists, what it does, why it does it that way, who notices when it stops), and produce a one-page-per-flow artifact with a fixed shape rather than a wiki nobody opens twice.

Something worth noticing appeared on a job board this month: a nine-month contract, five days a week onsite, for a senior technical writer attached to an integration modernization programme.

Read that as a signal rather than a vacancy. An organisation has looked at moving its integration estate, concluded that the blocker is not the destination platform, and funded a person for most of a year to answer the question what does the current system actually do.

That instinct is right, and it usually gets executed badly. What follows is what the workstream should produce, in what order, and how to know when it is finished.

01 / The real gap


“Undocumented” is four different problems

Teams say an estate is undocumented as though it were one condition. It is four, they fail differently, and only the first one is usually addressed.

LAYER 01

What exists

The inventory: ports, orchestrations, maps, pipelines, adapters, schedules, partners. This is the layer people mean when they say documentation, and it is the only one a tool can produce on its own. It is also the least valuable, because it tells you the size of the problem and nothing about the shape.

LAYER 02

What it does

For each flow: what triggers it, what it transforms, where it sends the result, what it does on failure. Recoverable by reading the artifacts, slowly, by someone who understands the platform. This is the layer the writer is usually hired for.

LAYER 03

Why it does it that way

The map that strips a field because one partner’s parser choked on it in 2014. The retry with an odd interval because a downstream system rate-limits silently. This layer is not in the artifacts at all. It exists in people, tickets and mailing lists, and it is where migrations actually break.

Why this is the expensive layer

Layer 2 tells you how to rebuild the flow. Layer 3 tells you why rebuilding it faithfully from the schema will fail. A rebuild that matches the documented behaviour and not the actual behaviour passes testing and breaks in week one of production, because the tolerance nobody documented is the thing production depended on.

LAYER 04

Who notices when it stops

The consequence map. Which flows have a person on the other end who will call within the hour, which have a partner who will notice at month-end, and which nobody would miss. This is the layer that lets you sequence a migration by risk instead of by artifact count — and almost nobody captures it.

A documentation workstream that produces only layers 1 and 2 has produced a very thorough description of a system whose real behaviour is still unknown. That is the common failure, and it is expensive because it looks like success.

02 / Where to start


Start from the traffic, not from the console

The instinct is to open the administration console, list everything, and work down the list alphabetically. Two months later you have documented a great deal of material, much of it describing flows that have not moved a message since 2019.

Invert it. Pull the message log for the last quarter, sort by volume, and let the traffic tell you what matters.

From the consolealphabetical · complete · slowAcmeInboundOrders — dead since 2019AcmeOutboundAck — dead since 2019ArchiveSweep — deadBillingFeed — live, 40k/daythree weeks spent before the first live flowFrom the trafficby volume · risk-ordered · fastBillingFeed — 40k/dayPartnerASN — 12k/dayEligibilityCheck — 3k/day…everything with zero traffic, as one listthe dead artifacts document themselves, in one line
Traffic-first ordering does two jobs at once: it documents what matters first, and it turns the dead half of the estate into a single line item — “these moved nothing in ninety days” — instead of half the writer’s contract.

The retirement candidate list is a by-product of this ordering, and it is often worth more than the documentation. Scope you delete costs nothing to migrate.

03 / Where layer three lives


Four sources that are not the documentation

SOURCE 01

The ticket queue

Every incident on an integration is a recorded instance of the system behaving in a way somebody did not expect. Two years of tickets, grouped by flow, is the closest thing most estates have to a written behavioural spec — and it is already written, by the people who were paged.

SOURCE 02

The suspended-message queue

What is sitting in it, and what has historically landed there, tells you which inputs the flow cannot handle and how often reality produces them. A flow with a long history of suspensions has a tolerance problem that no schema will disclose.

SOURCE 03

The partner, directly

For anything with an external counterparty, asking them what they send and what they expect back takes an email and frequently contradicts the internal understanding. Do this before the migration, not during the parallel run, when a contradiction becomes an incident.

SOURCE 04

The person, structured

The one who knows. Not a workshop — a scheduled hour per flow, with the artifact open, asking one question: what happens if this arrives wrong? An hour per flow with the right person is worth a week of reading, and it is the only way to capture layer three.

Do not interview the expert about the system. Interview them about one flow, with it open in front of you, and ask what breaks it. Generalities produce generalities; a specific artifact produces the story.

The interview technique that actually works

04 / The artifact


One page per flow, always the same shape

The output should not be a wiki. Wikis grow structure that reflects whoever wrote each section, and nobody reads the second page. What survives is a fixed-shape one-pager per flow, in a single folder, with the same eight headings every time.

The fixed shape

Eight headings, one page, no exceptions








The last heading is the one that makes the document honest. A page with three open questions on it is far more useful than a page that quietly implies everything is known — because the open questions become the test cases for the parallel run, and the parallel run is where an unknown gets answered by production rather than by a person.

05 / Staffing


Who should actually do this

A dedicated writer is the right idea with a hard constraint: a writer can capture layers 1, 2 and 4 unaided, but not layer 3. Layer 3 requires someone who knows what to be suspicious of — who reads a retry interval of 47 seconds and asks why it is not 30.

Layer Who Roughly how long
1 — What exists Tooling, plus an afternoon of cleanup Days
2 — What it does A technical writer with platform access and patience The bulk of the contract
3 — Why it does it that way An integration engineer, interviewing — not a writer working alone About an hour per live flow
4 — Who notices A writer, asking business owners rather than engineers Days, and frequently the biggest surprise

The common mistake is funding a writer for nine months and no engineer hours, then discovering in month seven that the document describes the artifacts accurately and the system inaccurately.

06 / Scope


What this post does not cover

This is the documentation workstream: how to capture what the estate does before it moves. The related question — why migrations that skipped this step fail, and in which specific ways — is its own piece: five failure modes we see in production, one of which is exactly the undocumented tolerance described in layer three above.

07 / Next


Start with ninety days of traffic

Before funding anybody, pull one report: every flow, with its message count for the last ninety days. It takes an afternoon, it costs nothing, and it tells you how much of the estate is actually in scope. Most teams find that number is a good deal smaller than the artifact count — and every flow it removes is documentation nobody has to write and a migration nobody has to run.

Our assessment produces the inventory, the traffic map and the flow one-pagers as its output — with an integration architect doing the layer-three interviews rather than a writer working alone. Twenty years running BizTalk in enterprise production, Microsoft V-TSP recognized for BizTalk Server.

Talk to an integration architect

Frequently asked questions

How do you document an integration estate that nobody documented?

Start from observed traffic rather than the administration console: pull the message counts for the last ninety days and work down by volume, so the flows that matter get documented first and the dead ones collapse into a single retirement list. Then capture four layers per flow — what exists, what it does, why it does it that way, and who notices when it stops — with the third layer coming from interviews, tickets and the suspended-message history rather than from the artifacts.

Should we document the estate before or during a migration?

Before, because the documentation determines the scope and the sequence. An inventory with traffic attached usually removes a meaningful share of the estate from scope entirely, and the consequence mapping is what lets you sequence migration waves by risk rather than by artifact count.

Is it worth hiring a technical writer for integration modernization?

Yes, with one constraint. A writer can capture the inventory, the flow behaviour and the consequence map unaided. What a writer cannot capture alone is why a flow behaves oddly — the tolerances, the workarounds, the retry interval that is a strange number for a reason. That layer needs an integration engineer conducting structured interviews, roughly an hour per live flow. Funding the writer without funding those hours produces a document that describes the artifacts accurately and the system inaccurately.

What should an integration flow one-pager contain?

Eight fixed headings, the same on every page: trigger, path, volume, failure behaviour, known tolerances, consequence, counterparty, and open questions. The open-questions heading is what makes the set honest — those entries become the test cases for the parallel run rather than surprises during it.

How long does it take to document an integration estate?

It scales with live flow count, not artifact count, which is why the traffic report comes first. The inventory takes days, the per-flow behavioural documentation is the bulk of the effort, and the interviews that capture undocumented behaviour run at roughly an hour per live flow. A large estate is a multi-month workstream; the same estate with dead artifacts removed is frequently half of that.

What if the person who understood the estate has already left?

Then the recoverable sources are the ticket queue, the suspended-message history, and the trading partners themselves. Two years of incidents grouped by flow is the closest thing to a written behavioural specification most estates have, and it was written by the people who were paged. External counterparties will usually tell you what they send and expect if you ask, and that answer sometimes contradicts the internal understanding — which is far better discovered by email than during a cutover.

Does documentation actually reduce migration cost?

It reduces scope, which is the same thing. Most estates carry flows that have not moved a message in years, and the traffic-first approach identifies them as a by-product rather than as a separate exercise. Every flow retired is documentation nobody writes, a migration nobody runs and a test nobody executes.

Jorge Pastorini · Cerebrum City

Cerebrum City is a Microsoft V‑TSP–recognized BizTalk specialist in Atlanta, Georgia, with two decades running BizTalk Server in enterprise production for clients including Humana, Deloitte, JetBlue, and U‑Haul.

Courtesy assessment

Want this mapped against your BizTalk estate?

We inventory your ports, orchestrations, maps, and adapters, flag the interfaces most likely to break, and hand back a staged Azure roadmap. No obligation.

Ready to modernize your stack?

From integration pioneers to cloud-native experts — start with a courtesy assessment and we’ll map the fastest path to a modern architecture.