# Solution components: Salesforce Connect, Flow and middleware

*Integration Architect Study Guide · Design Integration Solutions · Last updated October 16, 2026 · https://www.certifyforce.com/study-guide/integration-architect/design-integration-solutions/solution-components-salesforce-connect-flow-and-middleware*

Which building blocks make up an integration once the pattern is chosen: Salesforce Connect adapters and external object relationships, External Services, flow invocable actions and Flow Orchestration, platform event and Change Data Capture payload design, WSDL proxy classes, ETL design elements, Heroku Connect, and the middleware capabilities each pattern needs.

- 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, define the components which create a solution that meets business requirements.

## What the exam expects

- Assemble a Data Virtualization solution: the right Salesforce Connect adapter, the right external object relationship, and the High Data Volume option when rate limits bite.
- Build declarative outbound and inbound components: External Services from an OpenAPI spec, the invocable actions REST endpoint for an autolaunched flow, and Flow Orchestration for long-running multi-step work.
- Design event payloads: custom platform events vs Change Data Capture, enrichment and custom channels, record IDs for callbacks, loop prevention and the 1 MB limit.
- Pick the component for special endpoints: WSDL proxy classes for SOAP-only systems, Heroku Connect for Heroku Postgres, ETL with control tables for batch.
- Name the middleware capabilities a pattern makes mandatory.

Key terms: **external object** (maps to a table outside the org and is fetched in real time); **indirect lookup** (links an external child to a standard or custom parent through a unique External ID field); **External Services** (turns an OpenAPI spec into invocable actions); **enriched field** (added to change events even when unchanged); **control table** (ETL table that stores last run time and restart values).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Salesforce Connect licensing | Extra cost in Enterprise, Performance, Unlimited; included in Developer Edition | [Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_about.htm&type=5) |
| Custom adapter | Apex Connector Framework, for any HTTP/REST API when other adapters don't fit | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Indirect lookup | External child; parent matched on a custom External ID + Unique field | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| OData rate limits | High Data Volume bypasses most rate limits | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| External Services input | OpenAPI 2.0 or 3.0 schema | [External Services](https://help.salesforce.com/s/articleView?id=platform.external_services.htm&type=5) |
| Invoke a flow by REST | `/actions/custom/flow/<name>`; returns interview status and output variables | [Flow Actions](https://developer.salesforce.com/docs/atlas.en-us.api_action.meta/api_action/actions_obj_flow.htm) |
| Event message size | 1 MB maximum | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Enriched fields | Included in update and delete change events even when unchanged | [PlatformEventChannelMember](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_platformeventchannelmember.htm) |
| Custom channels | Created with Metadata API or Tooling API, not in Setup | [Custom Channels](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_custom_channel.htm) |
| Heroku Connect | Syncs Heroku Postgres and Salesforce, bidirectional available | [Data Integration with Salesforce](https://architect.salesforce.com/docs/architect/decision-guides/guide/data-integration.html) |

## Check yourself

- Why does an indirect lookup, not a standard lookup, link ERP orders to Account?
- When does a remote system call the custom invocable actions endpoint for a flow?
- Why include the Salesforce record ID in a Fire and Forget event when the remote system masters the key?
- Which two middleware capabilities does Fire and Forget make mandatory for a Pub/Sub API subscriber that feeds an unreliable ERP?

## Sources

- [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html)
- [Data Integration with Salesforce](https://architect.salesforce.com/docs/architect/decision-guides/guide/data-integration.html)
- [Event-Driven Architecture Decision Guide](https://architect.salesforce.com/docs/architect/decision-guides/guide/event-driven.html)
- [Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_about.htm&type=5)
- [External Services](https://help.salesforce.com/s/articleView?id=platform.external_services.htm&type=5)
- [Flow Actions](https://developer.salesforce.com/docs/atlas.en-us.api_action.meta/api_action/actions_obj_flow.htm)
- [Compose Streams of Change Data Capture Notifications with Custom Channels](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_custom_channel.htm)
- [PlatformEventChannelMember](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_platformeventchannelmember.htm)

## 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
