The integration layer protects both sides
When several systems use different protocols, identifiers, currencies, error models, and release cycles, direct point-to-point calls create a mesh of assumptions. An integration layer earns its place by translating at explicit boundaries, preserving correlation, and preventing one vendor model from becoming everybody else’s domain model.
Canonical contracts reduce pairwise mapping
- Define canonical messages around business intent, not the union of every vendor field.
- Keep one adapter per external contract and version it independently.
- Translate identifiers, units, currencies, dates, and error semantics deliberately.
- Store correlation and audit metadata before asynchronous handoffs.
- Use orchestration only when one workflow genuinely spans systems; do not centralize all domain logic.
An inbound command through adapters
External adapters map contracts into a canonical command. Orchestration owns cross-system sequencing, while each source system keeps its business ownership.
Canonical integration hub without domain leakage
External adapters map contracts into a canonical command. Orchestration owns cross-system sequencing, while each source system keeps its business ownership.
Connecting ERP, payments, and a legacy core
Integration layers that become a new monolith
Boundary checklist
- Name system-of-record ownership for each entity.
- Version canonical commands and external adapters independently.
- Persist workflow state and external references.
- Define compensation or resume behavior per step.
- Trace every call with a shared correlation identifier.
