Skip to main content

SF-9110 · Compare · Hard

What are the integration design patterns in Salesforce?

✓ Verified by Vikas Singhal · Last reviewed 5/17/2026 · Updated for Spring '26

Salesforce’s official Integration Patterns and Practices guide names six canonical patterns. Every real integration is one of them, or a composition of two. Knowing the names — and which technology fits each — is what separates an interview answer that sounds rehearsed from one that sounds practiced.

The six patterns

PatternDirectionSync/AsyncTypical tech
Request and ReplySF → External (wait for answer)SynchronousREST/SOAP callout from Apex/Flow
Fire and ForgetSF → External (don’t wait)AsynchronousPlatform Events, @future, Outbound Messages
Batch Data SynchronizationEither way, bulkAsynchronous, scheduledBulk API 2.0, ETL tools, Data Loader
Remote Call-InExternal → SFSynchronousREST/SOAP API, Apex REST/SOAP services
UI Update from External SystemExternal → SF UIAsynchronousPlatform Events + LWC empApi
Data VirtualizationExternal → SF (no copy)On-demandSalesforce Connect / OData

Request and Reply — the most common

User clicks “Run Credit Check.” Salesforce calls the credit bureau API, waits up to a few seconds, displays the score. Use when: the caller needs the answer immediately and the round-trip is fast enough for the UI to wait.

Implementation: Http.send() from Apex behind a Lightning button, or an External Service flow action.

Fire and Forget — for downstream notifications

A new Opportunity closes. Salesforce should notify ERP, but the user shouldn’t wait. Use when: the external system doesn’t need to return data, or its response doesn’t affect the current UI.

Implementation: Publish a Platform Event, or call out from @future(callout=true). Outbound Messages (Workflow-era) still work but are legacy — avoid for new builds.

Batch Data Synchronization — for nightly bulk loads

Sync yesterday’s orders to the data warehouse at 2 AM. Use when: latency tolerance is high, volume is huge, both systems can be reconciled offline.

Implementation: External ETL tool (Informatica, Mulesoft, Boomi) pulling via Bulk API 2.0, or Apex Batch + REST callouts pushing out.

Remote Call-In — external systems writing to Salesforce

A web form on your marketing site creates a Lead. The form posts to a Salesforce REST endpoint. Use when: the source of truth lives outside, and Salesforce needs the data created/updated synchronously.

Implementation: Salesforce REST API, SOAP API, or custom Apex REST/SOAP service (@RestResource, webservice keyword).

UI Update from External System — real-time push to users

A trading floor app shows live stock prices. An external system publishes prices; Salesforce LWC users see updates without refreshing. Use when: the user UI must reflect data changing outside Salesforce in near-real-time.

Implementation: External system publishes Platform Events to Salesforce via the Pub/Sub API; LWC subscribes via the lightning/empApi module.

Data Virtualization — don’t copy, just query

Customer order history lives in SAP. Reps want to see it on the Account page. Use when: data must stay in the source system (compliance, size, freshness) but appear inside Salesforce.

Implementation: Salesforce Connect with an OData 2/4 adapter exposes external data as External Objects (__x suffix). They’re queryable via SOQL, reportable, related to standard objects via External Lookup, but never copied into Salesforce.

Composition example

Real integrations chain patterns:

  • Web form (Remote Call-In, REST) → creates Lead
  • Lead Trigger publishes a Platform Event (Fire and Forget) → marketing automation tool consumes it
  • Nightly job (Batch Data Synchronization) syncs converted Leads to the data warehouse
  • Account page shows live billing data via External Objects (Data Virtualization)

Common interview follow-ups

  • Request-Reply vs Remote Call-In? — Direction. Request-Reply is Salesforce initiating outbound; Remote Call-In is an external system initiating inbound.
  • Why pick Platform Events over Outbound Messages? — PE supports multiple subscribers, replay, retries, and external pub/sub. Outbound Messages are SOAP-only, single-target, no retries.
  • Data Virtualization sounds great — why not always? — Cross-system joins are slow, governor limits still apply to External Objects, and not every external system speaks OData.

Verified against: Salesforce Integration Patterns and Practices. Last reviewed 2026-05-17 for Spring ‘26 release.