After a hundred Salesforce-to-ERP integrations across NetSuite, SAP, and Microsoft Dynamics, we have collected the five architectural patterns that scale — and the three we avoid.
The five patterns that work
- Pattern 1 — Event-driven via middleware (MuleSoft, Workato): the modern default
- Pattern 2 — Real-time API integration with retry logic and DLQ
- Pattern 3 — Batch ETL with reconciliation reporting for high-volume non-real-time data
- Pattern 4 — CDC (Change Data Capture) with Salesforce Platform Events
- Pattern 5 — Hybrid: real-time for critical paths, batch for everything else
The three patterns we avoid
First: direct database-to-database integration. It looks simple, but you end up bypassing business logic, validation rules, and audit trails. Always go through APIs. Second: brittle point-to-point integrations that bake in source-to-target mapping. Use a middleware tier — your future self will thank you. Third: nightly full-data dumps that overwrite everything. Use incremental sync.
Architectural decisions to make before you start
Before any integration project, answer four questions in writing: What is the system of record for each entity? What is the latency tolerance? Who owns reconciliation when records do not match? What is the rollback plan? Skip any of these and you will pay for it later.