# Trade-offs and platform limits of integration options

*Integration Architect Study Guide · Design Integration Solutions · Last updated October 16, 2026 · https://www.certifyforce.com/study-guide/integration-architect/design-integration-solutions/trade-offs-and-platform-limits-of-integration-options*

The limits and trade-offs that decide whether an integration survives production: long-running request and callout limits, Salesforce Connect and External Services constraints, event retention, CDC entity limits, Bulk API 2.0 transactions, query cursors, outbound message retries, partial success behind HTTP 200 and Well-Architected trade-offs.

- 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 trade-offs, limitations, and constraints that meet the proposed solution.

## What the exam expects

- Diagnose a failing design from its symptom: REQUEST_LIMIT_EXCEEDED, invalid query locators, callouts rejected from triggers, records missing behind HTTP 200.
- State the constraints of each option: External Services, Salesforce Connect, platform events and Change Data Capture, Bulk API 2.0, outbound messaging, Heroku Connect, MuleSoft Anypoint.
- Know which limits no longer bite (callouts and the long-running request limit) and which do (120-second callout timeout).
- Frame trade-offs with the Well-Architected pillars instead of maximizing every control.

Key terms: **long-running request** (an Apex request over 5 seconds, or an inbound API call of 20 seconds or longer, each with its own limit); **retention window** (72 hours of replayable high-volume events); **replay ID** (increasing event position a subscriber resumes from); **partial success** (some records fail inside a well-formed request); **pillar trade-off** (spending on one quality dimension at another's expense).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Callouts and long-running limit | Excluded since Winter '20; timer pauses during the callout | [Continuations (LWC)](https://developer.salesforce.com/docs/platform/lwc/guide/apex-continuations.html), [Callout Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_callouts_timeouts.htm) |
| Concurrent long-running Apex transactions | Over 5 s; 1 per 100 licenses, min 10, max 50 | [Execution Governors and Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm) |
| Callout timeouts | Default 10 s; max 120 s per callout and cumulative per transaction | [Callout Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_callouts_timeouts.htm) |
| Concurrent long-running API requests | 25 of 20 s or longer in production and sandboxes | [API Request Limits](https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_api.htm) |
| Open query cursors | No limit since API 56.0, all versions; 2-day lifetime (the catalog's 10 per user is stale) | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html), [API Query Cursor Limits](https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_apicursors.htm) |
| High-volume event retention | 72 hours; no Salesforce-side retry | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| CDC entities without add-on | 5 | [Select Objects for Change Notifications](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_select_objects.htm) |
| Outbound message queue | Retried until 24 hours old, then dropped | [Considerations for Outbound Messages](https://help.salesforce.com/s/articleView?id=platform.workflow_om_considerations.htm&type=5) |
| Bulk API 2.0 batches | Parallel, no serial mode, each its own transaction | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Composite graph | 500 nodes; each graph all-or-nothing | [Using Composite Graphs](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_composite_graph_introduction.htm) |
| Salesforce Connect cost | Extra cost in Enterprise, Performance, Unlimited | [Salesforce Platform Features Supported by Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_considerations.htm&type=5) |

## Check yourself

- Do three middleware apps sharing one integration user still exhaust open query cursors?
- When does Bulk API 2.0 make a parent-before-child sorted file unsafe?
- Why is the cross-org adapter a poor fit for a pipeline total across four orgs?
- What happens to an outbound message whose endpoint stays down?

## 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)
- [Well-Architected Framework](https://architect.salesforce.com/docs/architect/well-architected/guide/framework.html)
- [Execution Governors and Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm)
- [Continuations (LWC)](https://developer.salesforce.com/docs/platform/lwc/guide/apex-continuations.html)
- [Callout Limits and Limitations](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_callouts_timeouts.htm)
- [API Request Limits and Allocations](https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_api.htm)
- [API Query Cursor Limits](https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_apicursors.htm)
- [Salesforce Platform Features Supported by Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_considerations.htm&type=5)
- [Change Data Capture Allocations](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_allocations.htm)
- [Select Objects for Change Notifications](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_select_objects.htm)
- [Using Composite Graphs](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_composite_graph_introduction.htm)
- [Update Records Using sObject Collections](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_composite_sobjects_collections_update.htm)
- [Composite Batch](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_composite_batch.htm)
- [Considerations for Outbound Messages](https://help.salesforce.com/s/articleView?id=platform.workflow_om_considerations.htm&type=5)

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