# Choosing the integration pattern for a requirement

*Integration Architect Study Guide · Design Integration Solutions · Last updated October 16, 2026 · https://www.certifyforce.com/study-guide/integration-architect/design-integration-solutions/choosing-the-integration-pattern-for-a-requirement*

How to pick the integration pattern from the requirement itself: who initiates, whether anyone waits, whether the data must live in Salesforce and how much of it moves; when to virtualize instead of replicate, how to give a remote system an asynchronous call-in, which event-driven pattern fits, and what replaces Salesforce to Salesforce.

- Certification: Salesforce Integration Architect
- Exam section: Design Integration Solutions
- Study guide: https://www.certifyforce.com/study-guide/integration-architect

**Official exam objective:**

> Given a use case, identify the integration pattern that meets business requirements.

## What the exam expects

- Pick the pattern from a requirement's timing, volume, initiator and storage constraint, rejecting patterns that break a stated constraint.
- Decide between Data Virtualization and Batch Data Synchronization when reporting, aggregation or whole-data-set processing is involved.
- Design an "asynchronous call-in" for a remote system that can't wait, and know when a direct API update is simpler.
- Combine several patterns in one solution, one per data flow.
- Choose among the event-driven patterns (publish/subscribe, fanout, queuing, passed messages, streaming) and recognise when event-driven doesn't fit.
- Recommend the right replacement for Salesforce to Salesforce.

Key terms: **initiator** (the system that starts the interaction, which fixes the pattern family); **Data Virtualization** (Salesforce reads external data in real time without persisting it); **asynchronous call-in** (a remote system publishes a platform event instead of waiting on Salesforce processing); **fanout** (all subscribers read the same message from one queue); **queuing** (each subscriber has its own queue that holds messages until retrieved).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Calls into Salesforce | Always synchronous request-reply; SOAP API has no asynchronous mode | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Platform events vs direct API for call-in | Events for a variable, non-finite set of subscribers; direct SOAP/REST for simple updates to a finite set of records | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Fire and Forget best fit | Flow-driven platform events, consumed externally through Pub/Sub API | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Data Virtualization volume | Primarily small volume, real-time; external objects can impact report performance | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Maximum wait for an external response | Configurable, up to 120 seconds | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Pub/Sub API subscription model | Pull-based: the client requests events | [Pub/Sub API Features](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/pub-sub-features.html) |
| Queuing | Unique queue per subscriber; delivery can be guaranteed and tracked | [Event-Driven Architecture Decision Guide](https://architect.salesforce.com/docs/architect/decision-guides/guide/event-driven.html) |
| Fanout | Single queue, same message; harder to verify receipt | [Event-Driven Architecture Decision Guide](https://architect.salesforce.com/docs/architect/decision-guides/guide/event-driven.html) |
| Salesforce to Salesforce | Retired Spring '27; multi-org replacement is Data Cloud One | [Salesforce-to-Salesforce Retirement](https://help.salesforce.com/s/articleView?id=005103355&language=en_US&type=1) |

## Check yourself

- Why is Batch Data Synchronization better than Data Virtualization for a nightly calculation over 20 million external rows?
- When should a remote system publish a platform event instead of updating records through REST?
- When is an event-driven pattern the wrong choice?

## Sources

- [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html)
- [Event-Driven Architecture Decision Guide](https://architect.salesforce.com/docs/architect/decision-guides/guide/event-driven.html)
- [Data Integration with Salesforce](https://architect.salesforce.com/docs/architect/decision-guides/guide/data-integration.html)
- [Salesforce-to-Salesforce Retirement](https://help.salesforce.com/s/articleView?id=005103355&language=en_US&type=1)
- [Connect Multiple Orgs with Data Cloud One](https://trailhead.salesforce.com/content/learn/modules/data-cloud-one-quick-look/connect-multiple-orgs-with-data-cloud-one)
- [Pub/Sub API Features](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/pub-sub-features.html)
- [Get Started with Pub/Sub API](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/intro.html)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 17 linked practice questions, and unlimited timed mock exams are included with the Integration Architect pack (USD $19): https://www.certifyforce.com/practice-exams
