Skip to content

Write the Design Down

Module 6 of 7 in the chapter Choosing the Right Integration Design, chapter 16 of the Integration Architect course. Each module stands on its own. Previous: Combining Mechanisms, and Licensing Them · Next: Checkpoint 2: Steve Trucking Under Load

The question this module answers: Once the design is chosen, how do you write it down so that someone else can build it, run it and review it?

Every integration design gets made. The question is whether it gets written down. If it doesn’t, it lives in the head of whoever built it, and it leaves when they do. The next person finds an arrow on a diagram labelled “SMS,” and has to read code to learn who calls whom, with what credential, and what happens when it fails.

You’ve already met the two pieces that fix this. Chapter 5 turned the landscape into an inventory: four answers for every arrow (chapter 5 module 6). And the Data Architect course gave every important arrow a contract: what the data means, who owns it, how fresh, how much (Integration Data Contract). This module puts them together, and adds what Part 2 taught: one record per arrow.

The landscape is the index. Each important arrow gets a number, and each number opens a record. The record has two halves.

One record, two halves One record, two halves. The data contract, from the Data Architect course: initiator, data direction, freshness, volume and shape, key, write authority, pattern, proof of delivery, sensitivity and travel, and change. The integration lines, from this course: the mechanism and why, linked to its trade-off card; the identity and the credential, and who holds it; the failure plan, out and in; the conductor and the undo steps, if there's more than one step; the owner and the runbook; the running cost; and the date it was last checked. Underneath: the landscape is the index; each arrow opens one record; a line you can't check is a hope, not a requirement. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.58.0", "built": "2026-11-04", "id": "DGM-INT-CD-10", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "comparison/side-by-side 0.5.0", "theme": "stevetecharc 1.4.0"} The data contract from the Data Architect course Initiator and data direction Freshness, volume and shape Key and write authority Pattern Proof of delivery Sensitivity and travel; change The integration lines from this course Mechanism, and its trade-off card Identity and credential, and who holds it Failure plan, out and in Conductor and undo, if more than one step Owner and runbook Running cost; last checked The landscape is the index; each arrow opens one record. A line you can't check is a hope, not a requirement. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

One record per arrow. Every line something you can check.

The data contract comes from the Data Architect course, and I won’t repeat it here: initiator, data direction, freshness, volume and shape, key, write authority, pattern, mechanism, proof of delivery, sensitivity and travel, and change. Its rule holds for the whole record: “A contract line you can’t check is a hope, not a requirement.”

The integration lines are the ones this course adds. The contract’s mechanism line says “the integration architect’s choice.” This half is where the integration architect makes it, and writes down everything it takes:

LineThe decisionWhere the course teaches it
Mechanism, and whyWhat carries it, and the trade-off card that chose itModule 1, module 4
Identity and credentialWhich identity calls, with which credential, held where, by whomChapter 13
Failure planOut: where it’s logged, who’s told, how it’s retried. In: how the other side retries and recoversChapter 14
Conductor and undoIf there’s more than one step: who holds the plan, the undo for each step, every wait’s deadlineChapter 15
Owner and runbookThe team that runs it, the team that owns the outcome, and what each does when it breaksChapter 14 module 6
Running costWhat it counts against every day: API calls, event deliveries, licences, another system’s capacityModule 3, module 5
Last checkedThe date every fact in the record was last checkedModule 2

Zoom In: The Day-Before Message, Written Down

Section titled “Zoom In: The Day-Before Message, Written Down”

Here’s one arrow, end to end. The day-before message was module 1’s open question; module 4 chose option B, a platform event to the integration layer. Now it gets its record.

The day-before message, zoomed in The day-before message, zoomed in. Three boxes left to right: Salesforce, the integration layer, the SMS and email provider. Salesforce publishes "a message is due" as a platform event and moves on; under it, the data contract: the delivery and the recipient's contact, the day before, the delivery ID as the key. The integration layer subscribes with its own integration user, through the Pub/Sub API, and calls the provider; under it: the provider's key held in the layer's secret store; the log, the retries with the same key, the replay after an outage; the integration team runs it. The provider sends the message and reports what happened; under it: confirm in week one that it accepts a repeat key. Underneath: one arrow on the landscape, one record; every line says who, how, and how you'll know. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.58.0", "built": "2026-11-04", "id": "DGM-INT-CD-11", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "cells 0.5.0", "theme": "stevetecharc 1.4.0"} SALESFORCE INTEGRATION LAYER SMS AND EMAIL PROVIDER A message is due a platform event; Salesforce moves on starts it The layer subscribes with its own integration user The provider sends the text or email, reports what it sent The data the delivery and the recipient's contact; the delivery ID is the key Its credential and its log the provider's key in the layer's secret store; every call logged with the delivery ID Retry and replay the same key on every retry; replay from where it stopped To confirm in week one does it recognize a repeat key? Owner the integration team runs it; customer care owns the outcome platform event provider's API One arrow on the landscape, one record. Every line says who, how, and how you'll know. HOW TO READ IT what makes a retry safe still to confirm © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Zoomed in: one arrow, every line answered.

LineThe day-before message
PatternFire and forget, from Salesforce (chapter 7 module 7)
Mechanism, and whyA platform event, “a message is due,” published by Salesforce; the integration layer calls the provider. Why: it keeps every outside call and its retries in one place (module 4)
KeyThe delivery’s ID, sent to the provider as the message’s own key, so a repeat is recognized
Identity and credentialThe layer subscribes with its own integration user (chapter 13 module 4). The provider’s key moves out of Salesforce, into the layer’s secret store (chapter 13 module 8)
Failure plan, outThe layer logs every call with the delivery’s ID, and retries with the same key (chapter 14 module 4). After an outage, it replays from where it stopped, inside the event bus’s retention (chapter 11 module 4)
Failure plan, inThe provider reports what it sent. Requirement for week one: confirm the provider accepts a repeat key, so a retry never sends two texts
Conductor and undoOne step, so no conductor. The message is the step that can’t be undone, so it goes last, after the delivery is confirmed for tomorrow (chapter 15 module 5)
Owner and runbookThe integration team runs it; customer care owns the outcome. When messages stop, the integration team is told first
Running costOne event published and one delivered per message, against the event allocations (chapter 11 module 5), and the layer’s capacity
Last checked2026-11-04

Notice two things.

The record changed the inventory. Chapter 5’s inventory had the provider’s key in a named credential in Salesforce, owned by customer care. That was the right starting point. The design moved the key to the layer, and split the owner in two: the team that runs it, and the team that owns the outcome. When the design changes, the record changes, the same day. An inventory that disagrees with the design is worse than none, because people trust it.

The record found a requirement. Writing the failure plan down asked a question nobody had asked: will the provider recognize a repeat? If not, a retry sends a second text to the recipient. That’s exactly what writing it down is for: finding architecture work before production finds it for you.

A record like this does three jobs.

  • It builds. A developer who’s never met you can build from it.
  • It runs. At two in the morning, the person on call knows who owns it, where it’s logged and what to try.
  • It reviews. A review stops being “does the diagram look right?” and becomes a check, line by line. Chapter 24 reviews someone else’s design that way.

Test knowledge. Expect to justify a design, not just name it. For each integration, be ready to state the pattern, the mechanism and why, how it authenticates, how errors are handled and retried, and who is notified. A design you can state line by line is a design you can defend.

Beyond the exam: what AI changes. An AI assistant is very good at filling a record like this from a design conversation, a diagram or the code itself. Use it. Then check every line it filled in, because it will fill in an answer for every line, including the ones nobody decided. A blank line is honest. A confident line that nobody chose is the most dangerous thing in the record.

  • The index: which arrows on the landscape get a record.
  • For each: both halves, the data contract and the integration lines.
  • How each line will be checked, and who checks it.
  • Who keeps the record current when the design changes, the same day.