# Network, locking, ordering and transaction constraints

*Integration Architect Study Guide · Translate Needs to Integration Requirements · Last updated October 16, 2026 · https://www.certifyforce.com/study-guide/integration-architect/translate-needs-to-integration-requirements/network-locking-ordering-and-transaction-constraints*

Which design each system or process constraint forces: who opens the connection through a firewall, where multi-system transactions and compensation live, idempotent inbound writes, record-lock contention in loads, Change Data Capture ordering, throttled or offline targets, and capability checks on the other system.

- Certification: Salesforce Integration Architect
- Exam section: Translate Needs to Integration Requirements
- Study guide: https://www.certifyforce.com/study-guide/integration-architect

**Official exam objective:**

> Given a use case and business process, evaluate system and process constraints.

## What the exam expects

- Decide which side must open the connection when a firewall blocks inbound traffic, and where WS-Security must be added when Salesforce can't produce it.
- Recognise that Salesforce can't join a distributed transaction, so multi-system rollback, compensation and long-running work move to middleware or callbacks.
- Make inbound writes idempotent and avoid record-lock contention in loads.
- Rebuild Change Data Capture ordering across channels and plan for subscriber outages and throttled targets.
- Check the other system's capabilities before choosing a mechanism (gRPC for Pub/Sub API, OpenAPI for External Services, OData for Salesforce Connect).

Key terms: **compensation** (undoing already-committed work in other systems after a later step fails); **idempotent** (repeating a call has no extra effect); **transactionKey** (CDC header field shared by every change in one transaction).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Distributed transactions | Salesforce can't participate; rollback and compensation live in middleware | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| WS-Security | Not supported natively; inject through a security/XML gateway | [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Callouts per transaction | 100 | [Execution Governors and Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm) |
| Cumulative callout timeout | 120 seconds per transaction | [Execution Governors and Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm) |
| Lock wait | A transaction waits at most 10 seconds for a record lock | [Unable to lock row](https://help.salesforce.com/s/articleView?id=Unable-to-lock-row-Record-currently-unavailable-errors&language=en_US&type=1) |
| Bulk API default | Original Bulk API runs batches in parallel and has Serial mode; Bulk API 2.0 is always parallel | [Unable to lock row](https://help.salesforce.com/s/articleView?id=Unable-to-lock-row-Record-currently-unavailable-errors&language=en_US&type=1), [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html) |
| Event retention | 72 hours; no storage guarantee beyond | [Event Message Durability](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/event-message-durability.html) |
| commitNumber | Diagnostic only; unique only within one database instance | [ChangeEventHeader Fields](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_event_fields_header.htm) |
| Pub/Sub API transport | gRPC and HTTP/2, Avro payloads | [Get Started with Pub/Sub API](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/intro.html) |

## Check yourself

- Why can't Salesforce roll back an ERP order when a later step fails?
- When should a Bulk API load run in Serial mode?
- Which two header fields reconstruct a lead conversion's order?
- Why does a Queueable job that needs 150 callouts chain another job?

## Sources

- [Integration Patterns Overview](https://architect.salesforce.com/docs/architect/fundamentals/guide/integration-patterns.html)
- [Salesforce Error 'Unable to lock row - Record currently unavailable'](https://help.salesforce.com/s/articleView?id=Unable-to-lock-row-Record-currently-unavailable-errors&language=en_US&type=1)
- [Transaction-Based Replication Steps](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_replication_steps.htm)
- [ChangeEventHeader Fields](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_event_fields_header.htm)
- [Event Message Durability](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/event-message-durability.html)
- [Get Started with Pub/Sub API](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/intro.html)
- [Execution Governors and Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm)
- [Queueable Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_queueing_jobs.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
