Integration architecture patterns

A new pattern each month: how it works, what breaks in practice, and how to test it end to end — drawn from the same checkpoint analysis the app itself computes.

All posts

Sep 23, 2026

The Month Our Engine Finally Beat the Chat Model

We benchmarked our own test-generation engine against a chat model given every page of the app — and lost, 3 seeded bugs to 4. Here is the losing number we published, the execution-feedback loop we built, and the 5-to-4…

Sep 12, 2026

Telematics / UBI Risk-Scoring Pipeline

The fleet endpoint produces events whose correctness is nearly tautological: a device reports what it reports, and the ingestion gateway either accepts it or doesn't. The premium end is equally seductive because it's the…

Sep 11, 2026

FNOL → Adjudication → Payout Saga

Both are cheap to verify and both are misleading, because neither is where the claim's meaning is decided or where it can be silently lost. The decision that matters is made across the seam between Coverage Verification…

Sep 10, 2026

EMPI Identity Resolution

Both are cheap to assert and both are nearly useless as a measure of whether identity resolution works, because neither endpoint holds a decision. The Registration System only reports what a clerk typed; the EMPI Identit…

Sep 9, 2026

Remote Patient Monitoring & Escalation

The tempting places to point a tester are the ends of this chain: the wearable fleet, where the data is born, and the EHR Vitals API, where a clinician finally sees it. Both are the wrong first stop. A wearable either tr…

Sep 9, 2026

HIE Federated Query

Both are tempting because both are legible — you can see a request go out and a document come back, and you can assert on it. But neither end is where this architecture earns its name. A federated query is federated prec…

Sep 9, 2026

DICOM / PACS Vendor-Neutral Archive

Both are wrong first choices, because both are the parts of the flow that are most constrained by what they talk to. A modality emits studies in a shape its own vendor controls; the viewer API renders whatever the transc…

Sep 9, 2026

Prior Authorization Workflow (X12 278 / FHIR PAS)

Both are cheap to verify and both will pass while the flow is broken, because neither end is where semantics change hands. The real complexity sits at the FHIR-to-X12 mapper, which is the only component in the chain that…

Sep 9, 2026

Claims EDI via Clearinghouse

Both are easy to assert against and both are nearly useless as early defect detectors, because everything that can silently corrupt a claim happens between them. Claim Batch Staging is where individual claims stop being…

Sep 9, 2026

FHIR REST & Subscription Integration

Both are tempting because both are observable — you can send a known admission event and assert that a known resource comes back. But that framing hides where the flow actually earns its name. The HL7 Interface Listener…

Sep 8, 2026

Demand Forecasting Pipeline

Both are easy to assert against, and that is exactly why they are poor places to spend your first effort. The warehouse is a record of what already happened, and the purchase orders are the last thing in the chain — by t…

Sep 7, 2026

Offline-First POS Sync

Both are easy to test because both are deterministic — a tap produces a line item, a posted order produces a stock decrement. But neither endpoint is where this architecture earns its name. "Offline-first" means the term…

Sep 6, 2026

Subscription Billing Dunning

Both are worth a handful of tests and neither is where subscription billing actually breaks. The real complexity sits in the Dunning Retry Job, because it is the only component in the chain that has to hold state across…

Sep 5, 2026

Cart Abandonment Trigger

That reading is wrong, and it misdirects testing effort to the two endpoints that are actually the easiest parts to verify. A cart service can be checked against its own state; a marketing platform can be checked against…

Sep 4, 2026

Returns Disposition Engine

But both ends are the most constrained parts of the flow. Intake produces a bounded set of inputs — a return initiated at POS or on the web — and the ERP record is a terminal write whose correctness is determined almost…

Sep 3, 2026

Marketplace Fan-in

The inventory master is authoritative by definition; whatever it says a quantity is, it is. The Seller API is a published contract with documented behavior. Neither of those is where a marketplace flow goes wrong. The re…

Sep 2, 2026

Payment Tokenization Vault

Both are tempting because both are observable — you can drive checkout with a test card and you can query the record store to see whether a row appeared. But neither end is where the flow actually gets hard. Checkout's j…

Sep 1, 2026

Omnichannel Order Orchestration

Both are easy to assert against and both are misleading, because neither of them is where the order actually gets decided. The real complexity sits in the middle, at the Order Orchestrator's dependence on the Inventory A…

Aug 31, 2026

CQRS with Event Sourcing

The real complexity sits in the seam between the Event Store and the Read Model Store, specifically in the Projection Updater. Everything upstream of the append is a decision: the Command Validator either accepts a comma…

Aug 30, 2026

Streaming Lakehouse Analytics Platform

Both are cheap to assert against and both are misleading. The Orders API is a synchronous contract — one caller, one response, one schema — and the BI layer is a read surface that will happily display a confident number…

Aug 29, 2026

Event-Driven Pub/Sub Broadcast

Order Service publishing an event and Push Notification Service delivering a message are both easy to observe and easy to assert against, which is exactly why they attract testing attention they don't deserve. The real c…

Aug 28, 2026

CQRS + Event Sourcing Integration

The Command API and Command Validator sit in front of an append-only log, which means their job is narrow and their failure mode is loud: a bad command is either rejected by the validator or it becomes an event, and once…

Aug 27, 2026

Saga-Based Distributed Transaction

That reading is wrong in the way that matters. Service A, B, and C are not stages of one transaction; they are three independent local commits, each of which is already durable the moment it returns. The orchestrator is…

Aug 26, 2026

Master Data Management Hub-and-Spoke

Both are cheap to verify and both are nearly useless as a measure of correctness, because neither can tell you whether the golden record is right — only whether something arrived. The real complexity sits in the Match &…

Aug 25, 2026

B2B EDI Exchange (Order-to-Cash)

Those are the cheapest things to verify and the least likely to be where the flow actually breaks. The real complexity sits in the middle band — the translator and the 997 acknowledgment step — because that is the only p…

Aug 24, 2026

Webhook-Driven SaaS Integration

The obvious endpoints in a webhook-driven integration are the least interesting places to test, and they're where most test effort lands anyway. The SaaS vendor's event trigger is not yours to break: you can't control wh…

Aug 23, 2026

Enterprise Service Bus (ESB) Mediation

That instinct is wrong. The adapters are the narrowest contracts in the flow: each one faces a single known system, and its job is bounded by that system's interface. The genuine complexity sits in the middle three hops,…

Aug 22, 2026

Reverse ETL to SaaS

A data warehouse holds records that are, by construction, already reconciled and queryable; a destination SaaS connector either authenticates and writes or it doesn't, and it tells you which. Both ends fail loudly. The r…

Aug 22, 2026

The Quality Engineer's Decade: What Changed, What's Next, and How Not to Get Left Behind

Ten years of shift-left, a role rename nobody voted on, and an AI acceleration messier than either side of the argument admits — sourced data on the 2023-2026 AI adoption gap, and what to do to stay relevant instead of o…

Aug 21, 2026

ETL/ELT Data Warehouse Pipeline

Both are cheap to check and both are misleading, because neither tells you where a wrong number came from. The real complexity sits in the middle band — the Staging/Landing Zone, Data Quality & Validation, Transform Laye…

Aug 20, 2026

Change Data Capture (CDC) Replication

Both are cheap to assert and both will pass long after the pipeline has quietly gone wrong, because the endpoints only tell you about state, and CDC is a flow about *events*. The real complexity sits in the middle band —…

Aug 19, 2026

Synchronous API-Led Integration

Both are poor first targets, because neither is where the flow actually decides anything. The channel application only submits; the settlement batch only consumes what has already been committed to the core ledger. The r…

Aug 18, 2026

Outbound Master-Data → SaaS Sync

The obvious endpoints — the Product Service that owns the master data and the Vendor Record Store that eventually holds it — are the least interesting parts of this flow, because both are authoritative and inspectable. T…

Aug 17, 2026

Scheduled File Batch → ERP Integration

The SaaS Export Service produces a file and the ERP Posting Batch Job posts records; both are bounded operations with observable outputs and owners who will notice when they break. The real complexity lives in two seams.…

Aug 16, 2026

IoT Telemetry & Alerting Pipeline

Both are cheap to check and both are nearly useless as early defect detectors, because they only tell you that something arrived or didn't. The real complexity sits in the middle, at the Event Stream Buffer and the Norma…

Aug 15, 2026

HL7 Interface Engine Integration

Both are wrong first choices, because neither is where the message actually changes identity. Between the MLLP Listener and the ADT Adapter, a message is persisted to the Message Store, rewritten by the HL7 Translator, c…

Aug 15, 2026

Event-Driven SaaS → ERP Integration

Both are cheap to verify and both are misleading, because neither端 tells you what the pipeline did to the data in between. The real complexity begins the moment the webhook receiver accepts an event but does not carry th…