Markdown Editor

Integration Design Document Template (Enterprise Integration Patterns)

Integration design: landscape, catalogue, per-flow pattern, field mapping, transformation, retries, idempotency, canonical model, cutover

Architektur & SystemdesignVollständigEnterprise Integration Patterns (Hohpe and Woolf, 2003)integrationdesignmath

Anleitung: Use when connecting several applications (ERP, CRM, warehouse, SaaS) through a platform or broker. Build and agree the integration catalogue first, then specify each flow with the same layout and a mapping table reviewed by the target data owner. Main pitfall: mapping defects and integrations discovered only at cutover.

Vorschau

Integration Design: [Programme or solution name]

Complete design for the integrations between a set of applications: landscape, catalogue of interfaces, a detailed specification per integration (pattern, trigger, volume, mapping, transformation, error handling, retries, idempotency, monitoring), canonical data model, security, service levels, testing and cutover. Patterns are named using the vocabulary of Enterprise Integration Patterns (Hohpe and Woolf). Replace every [bracketed] value and every row marked Example. Worked examples integrate an e-commerce platform with an ERP, a warehouse system and a CRM.

Document control

FieldValue
Document ID[INT-DES-COMMERCE-001]
Programme / solution[Commerce replatforming]
Integration platform[iPaaS / ESB / message broker / custom services]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Integration architect[@integration-architect]
Classification[Internal / Confidential]
Last updatedYYYY-MM-DD
Related[Solution architecture], [Data dictionary], [Test plan], [Cutover plan]

Approvals

RoleNameDecisionDate
Integration architect[@name][Approved / Changes requested]YYYY-MM-DD
ERP system owner[@name][Decision]YYYY-MM-DD
Warehouse system owner[@name][Decision]YYYY-MM-DD
Security[@name][Decision]YYYY-MM-DD
Business data owner[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft of catalogue
0.2YYYY-MM-DD[@name]Example: INT-03 changed from nightly file to near real-time events
1.0YYYY-MM-DD[@name]Example: Approved for build

Contents

1. Introduction

1.1 Purpose

[What this document decides. Example: "This document specifies how the new commerce platform exchanges orders, products, stock and customers with the ERP, warehouse management system and CRM, and how those exchanges are monitored and cut over from the legacy platform."]

1.2 Scope

In scopeOut of scope
Example: Order, product, price, stock, customer and shipment flowsFinance consolidation between ERP instances
Example: Migration of open orders at cutoverHistorical order migration (separate data migration plan)
[Item][Item]

1.3 Constraints and assumptions

  • [Example: ERP exposes only SOAP services and nightly file exports; no event capability before its upgrade in Q4.]
  • [Example: Warehouse system processes orders in waves every 15 minutes.]
  • [Example: All integrations run on the existing integration platform; no new middleware licences.]

2. Integration landscape

The landscape below shows the systems and the numbered integrations (INT-nn) that connect them through the integration platform.

SystemRoleOwnerTechnologyIntegration capabilities
Commerce platformStorefront, cart, orders[@owner]SaaSREST API, webhooks
ERPProducts, prices, finance[@owner][Product, version]SOAP services, SFTP files
Warehouse managementPicking, packing, shipping[@owner][Product]REST API, message queue
CRMCustomer profiles, marketing consent[@owner]SaaSREST API, bulk API
CarrierLabels, trackingExternalREST APIREST API, webhooks

3. Integration catalogue

IDNameSourceTargetPattern(s)StyleTriggerFrequencyVolume (peak)Priority
INT-01Product masterERPCommerceFile Transfer, Message TranslatorBatchScheduleNightly 02:0060 000 productsHigh
INT-02Price updateERPCommercePolling Consumer, Message TranslatorNear real-timeChange pollEvery 5 min5 000 changes/hourHigh
INT-03Stock levelWMSCommerceEvent Message, AggregatorEventStock movementContinuous30 events/sCritical
INT-04Order exportCommerceERP, WMSEvent Message, Recipient List, Message TranslatorEventOrder paidContinuous15 orders/sCritical
INT-05Shipment confirmationWMSCommerce, ERPEvent Message, Publish-Subscribe ChannelEventParcel dispatchedContinuous12/sHigh
INT-06Carrier labelIntegration platformCarrierRequest-ReplySynchronousPack completeOn demand12/sCritical
INT-07Customer syncCommerceCRMEvent Message, Content EnricherEventAccount changeContinuous3/sMedium
[INT-nn][Name][Source][Target][Patterns][Style][Trigger][Frequency][Volume][Priority]

4. Integration principles and patterns

4.1 Principles

IDPrincipleConsequence
IP-01Systems are loosely coupled through the integration platformNo point-to-point database links
IP-02Each data entity has one system of recordSection 6.2 lists the owner of each entity
IP-03Prefer events for changes, request-reply only when the caller needs the answer nowStock and orders are events; labels are request-reply
IP-04Every message is traceable end to endCorrelation ID on every message and log entry
IP-05Every consumer is idempotentDuplicates never create duplicate business records
IP-06Translation to and from the canonical model happens at the edgesSource and target adapters own their mappings

4.2 Pattern catalogue

PatternUsed forImplementation on this platform
Message ChannelTransport between producer and consumerBroker topic or queue per flow
Publish-Subscribe ChannelOne event, several consumersTopic with one subscription per consumer
Event MessageNotify that something happenedCloudEvents-style envelope, canonical payload
Request-ReplySynchronous call needing an answerHTTPS call with timeout and correlation ID
Message TranslatorConvert formats and structuresMapping in adapter, defined in 5.x mapping tables
Content EnricherAdd data the source does not sendLookup to system of record, cached
Content-Based RouterRoute by message contentRules on country or order type
Recipient ListSend to a computed list of targetsOrder export to ERP and WMS
AggregatorCombine related messagesStock events aggregated per SKU per 10 s window
Idempotent ReceiverIgnore duplicatesDeduplication store keyed by message ID
Dead Letter ChannelHold messages that cannot be deliveredPer-flow dead-letter queue
Polling ConsumerRead from a source without eventsScheduled query on change timestamp
File TransferBulk exchangeSFTP with checksum and control file

5. Integration specifications

5.1 INT-04 Order export

This integration sends every paid order to the ERP for invoicing and to the warehouse for fulfilment.

5.1.1 Overview

AttributeValue
PurposeMake paid orders available for fulfilment and invoicing
Source / targetCommerce platform to ERP and WMS
PatternsEvent Message, Recipient List, Message Translator, Idempotent Receiver, Dead Letter Channel
TriggerCommerce webhook order.paid
Frequency and volumeContinuous; 3 orders/s average, 15/s peak; 250 000 per month
Message size2 to 20 KB
Latency targetOrder in WMS within 60 s at p95
OrderingPer order only (key orderId)

5.1.2 Flow

The sequence shows the happy path and the duplicate case.

5.1.3 Field mapping

#Source field (Commerce)Canonical fieldTarget field (ERP)Target field (WMS)Rule
1idorder.externalIdCustomerPOreferenceCopy
2created_atorder.orderedAtDocDateorderDateConvert RFC 3339 UTC to ERP local date YYYYMMDD
3customer.idorder.customerRefSoldTonot sentLookup ERP customer number via cross-reference table XR-01
4line_items[].skulines[].skuMaterialskuUpper case; strip spaces
5line_items[].quantitylines[].quantityTargetQtyqtyInteger
6line_items[].pricelines[].unitPriceNetPricenot sentDecimal string to ERP decimal with 2 places
7shipping_address.country_codeshipTo.countryCountrycountryISO 3166-1 alpha-2 unchanged
8shipping_lines[0].codeshipping.methodShipCondserviceLevelValue map VM-01
9noneorder.salesOrgSalesOrgnot sentConstant 1000 for EU web orders
[n][Source][Canonical][Target][Target][Rule]

Value map VM-01 (shipping method):

Commerce codeCanonicalERP ShipCondWMS serviceLevel
standardSTANDARD01STD
expressEXPRESS02EXP
click_collectPICKUP05PCK

5.1.4 Transformation and validation rules

  • Reject (to dead letter) any order whose total does not equal the sum of lines plus shipping minus discounts, within 0.01.
  • Split orders with more than [999] lines because the ERP limit is 999.
  • Orders with country outside [EU list] are routed by a Content-Based Router to the export queue for manual customs handling.

5.1.5 Error handling, retries and idempotency

ErrorDetectionHandling
ERP unavailable or timeout (30 s)SOAP fault or timeoutRetry 5 times with backoff 1, 2, 4, 8, 16 min, then dead letter and alert
ERP business error (unknown material)SOAP fault codeNo retry; dead letter; ticket to product data team
WMS 409 ConflictHTTP statusTreat as success (order already exists)
WMS 5xxHTTP statusRetry as for ERP
Duplicate webhookeventId already storedAcknowledge, no processing

Idempotency: the integration stores eventId for 7 days; ERP calls carry CustomerPO and the ERP rejects duplicates on it; WMS uses reference as a unique key.

5.1.6 Monitoring

MetricThresholdAction
Orders received versus exported per hourDifference above 0.5%Alert integration support
End-to-end latency p95Above 60 s for 15 minAlert
Dead letter countAny messageTicket; above 20 in 1 hour pages on call

5.2 INT-03 Stock level

AttributeValue
PurposeKeep available stock in the storefront accurate to prevent overselling
PatternsEvent Message, Aggregator, Message Translator
TriggerWMS stock movement event
Frequency and volume30 events/s peak; aggregated to at most one update per SKU every 10 s
Mappingitem_code to sku; qty_available - qty_allocated to available
Error handlingRetry 3 times; on failure the next aggregate supersedes; nightly full reconciliation file corrects drift
IdempotencyUpdates are absolute quantities with a sequence number; older sequence numbers are ignored
MonitoringReconciliation differences above 1% of SKUs raise an alert

5.3 [INT-nn] [Integration name]

[Repeat the layout of 5.1 (overview, flow, mapping, rules, errors, monitoring) for each remaining catalogue entry.]

6. Canonical data model

6.1 Canonical entities

The canonical model below is the form messages take inside the integration platform; adapters translate to and from it.

6.2 Systems of record

EntitySystem of recordConsumersKeyCross-reference
ProductERPCommerce, WMSskun/a
PriceERPCommercesku + price listn/a
StockWMSCommercesku + siten/a
OrderCommerce (until paid), then ERPERP, WMSexternalIdXR-02 Commerce ID to ERP order number
CustomerCommerceCRM, ERPcustomerRefXR-01 Commerce ID to ERP customer number

7. Error handling and operations

TopicStandard
Retry policyExponential backoff, maximum 5 attempts, then Dead Letter Channel
Dead letter handlingReviewed daily by integration support; resubmission through the platform console with audit trail
CorrelationcorrelationId generated at entry, propagated to every hop and log
LoggingMessage metadata always; payloads only in non-production or masked
ReprocessingEvery flow supports replay from a given time for [7 days]
Support modelL1 integration support [hours], L2 platform team, L3 system owners
RunbooksOne per integration, linked from the monitoring dashboard

8. Security

IntegrationAuthenticationTransportData classificationNotes
INT-04 inbound webhookHMAC signature with shared secret, rotated 90 daysHTTPSPersonalTimestamp checked within 5 min
INT-04 to ERPClient certificateTLS over private linkPersonalService account with create-order rights only
INT-01 fileSSH key per partnerSFTPInternalFiles encrypted at rest; deleted after 30 days
INT-06 carrierOAuth 2.0 client credentialsHTTPSPersonal (address)Outbound allow-list
[INT-nn][Method][Transport][Class][Notes]

General controls: credentials in the secrets manager; least-privilege service accounts per integration; platform console access by SSO with MFA; audit log of resubmissions and mapping changes.

9. Service levels

IDAvailabilityLatency targetData freshnessSupport hoursMeasured by
INT-0399.9%p95 under 30 sStock no older than 60 s24x7Platform metrics
INT-0499.9%p95 under 60 sn/a24x7End-to-end tracking
INT-0199% of nightly runs complete by 05:00n/aDailyBusiness hoursJob monitor
[INT-nn][Target][Target][Target][Hours][Method]

Overall flow availability for a chain of nn independent steps with availability aia_i:

Aflow=∏i=1naiA_{flow} = \prod_{i=1}^{n} a_i

For INT-04 with Commerce (99.95%), platform (99.95%) and ERP (99.9%), the result is about 99.80%, so retries and queuing are needed to meet the 99.9% target.

10. Testing

LevelScopeEnvironmentExit criterion
UnitMappings and transformation rulesDeveloper / CI100% of mapping rows covered by tests
ContractMessage schemas and API contracts against each systemCI with mocksAll contracts pass
System integrationEnd-to-end flows across real test systemsSITAll catalogue flows pass happy path and listed error cases
PerformancePeak volume plus 50%Performance environmentLatency targets met; no message loss
ResilienceTarget outage, duplicate and out-of-order messagesSITRecovery without data loss or duplicates
User acceptanceBusiness scenarios across systemsUATSign-off by process owners
Test caseIntegrationScenarioExpected result
TC-INT04-01INT-04Example: Paid order with 3 lines, standard shippingERP and WMS orders created within 60 s; values match mapping
TC-INT04-05INT-04Example: Same webhook delivered twiceOne order in each target
TC-INT04-07INT-04Example: ERP down for 20 minutesOrders delivered after recovery in order
[TC-nn][INT][Scenario][Result]

11. Cutover and transition

StepActivityOwnerTimingVerification
1Freeze mapping and configuration changesIntegration leadT-7 daysChange freeze notice
2Load product, price and customer masters (INT-01, INT-07 bulk)Data teamT-3 daysCounts and checksums match
3Run legacy and new stock flows in parallel, compareIntegration teamT-3 to T-1Difference under 0.1%
4Stop legacy order export; drain queuesIntegration teamT-0 22:00Queue depth zero
5Migrate open ordersData teamT-0 22:30Count reconciled
6Enable new INT-04 and INT-05Integration teamT-0 23:30Test order end to end
7Go / no-go decisionCutover managerT-0 23:45Criteria below
8Hypercare with extended monitoringAllT+1 to T+14 daysDaily reconciliation report

Go / no-go criteria: all critical integrations pass smoke tests; no open severity 1 or 2 defects; reconciliation within tolerance. Rollback: re-enable the legacy export and replay orders captured since step 6 from the integration platform store.

12. Appendices

12.1 Glossary

TermMeaning
Canonical data modelShared message format used inside the integration platform
System of recordThe system whose value of a data item is authoritative
Cross-reference tableMapping of identifiers between systems
HypercarePeriod of increased support after go-live
[Term][Meaning]

12.2 References

ReferenceUse
Hohpe, G. and Woolf, B., Enterprise Integration Patterns, Addison-Wesley, 2003Pattern names in sections 3 to 5
[System API documentation]Interface details
[Data dictionary]Field definitions

Standard and licence note

Based on common industry practice for integration design. Pattern names follow the vocabulary of Gregor Hohpe and Bobby Woolf, Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (Addison-Wesley, 2003); only the pattern names are used, and no text or diagrams from the book are reproduced. Original text written for this collection. Template licence: MIT.

Ähnliche Vorlagen