Salesforce Integration Architect Part 4: Design Integration Solutions
This topic includes the following objectives:
- Given a use case, identify the integration pattern that meets business requirements.
As part of this objective you should understand the various integration patterns that can be utilized to design integrations between Salesforce and remote systems. It also covers the use cases of the integration patterns. An integration pattern describes the design and approach for integrating systems. It can focus on application, data or process integration.
The integration pattern called Remote Process Invocation – Request & Reply is used when Salesforce needs to perform a synchronous callout to a remote system and wait for a reply. Remote Process Invocation – Fire & Forget is used to send information to a remote system when an immediate response is not required. Batch Data Synchronization is used for exporting, transforming and loading data between Salesforce and a remote system. Remote Call-In is used when a remote system needs to perform an API call to Salesforce to retrieve, create, update, or delete data. Data Virtualization is used to give Salesforce users access to data stored in a remote system. UI Update Based on Data Changes focuses on the use of Streaming API to update Salesforce UI whenever an event occurs. The Publish/Subscribe pattern involves the use of platform events, which can be used by Salesforce and a remote system to communicate events.
- Given a use case, define the components which create a solution that meets business requirements.
As part of this objective you should understand various integration solutions and the components that comprise each solution. An integration solution is typically based on an integration pattern. Salesforce can be integrated with an external system using one of several integration patterns, including Remote Process Invocation (synchronous and asynchronous), Remote Call-In, Batch Data Synchronization, and Data Virtualization.
Various native features are available for building an integration solution, such as REST API, SOAP API, Platform Events, Apex Web Services, Salesforce Connect, etc. Each solution consists of certain components or resources that are used to connect the systems and process data. For example, using Enhanced External Services requires registering an external web service using a JSON-based API spec, which generates invocable actions that can be used in a flow built using Flow Builder.
- Given a use case, identify the trade-offs, limitations, and constraints that meet the proposed solution.
An integration solution may be affected by limitations or constraints. A trade-off may be necessary in an integration solution design to meet a particular requirement. It’s a situational decision that involves losing one aspect of the design in favor of gaining another aspect.
Limitations that can affect an integration solution include governor limits, such as the maximum size of an HTTP response, and lack of support for the required capabilities or standards. Constraints can make it necessary to consider an alternative solution. For example, if a company does not have the resources for programmatic development, it may be necessary to choose a declarative solution.
- Given a use case that includes technical requirements, constraints or drivers, specify the appropriate Salesforce API(s) for the proposed solution.
Salesforce provides access to various APIs that can be used for integration with external systems. REST API is a REST-based web services interface that can be used for programmatic access to data in Salesforce. Similarly, SOAP API can be used to retrieve, create, update, or delete Salesforce records.
Bulk API 2.0 is based on REST and is used to process large sets of data. It can be used to insert, update, upsert, or delete hundreds of thousands of records. Streaming API is a subscription-based mechanism based on CometD that enables real-time streaming of event messages.
- Given a use case that includes technical requirements, constraints or drivers determine the standards, components, techniques, and security mechanism that should be used.
An integration solution may consist of several components, which can be affected by standards, calling mechanisms, and security mechanisms. Each component of an integration solution must be compatible with the standards supported by Salesforce. For example, SOAP API calls must use the standards supported by Salesforce (WSDL 1.1, SOAP 1.1, WSI-Basic Profile 1.1, and HTTP).
Certain security considerations also apply to integration solutions. For example, an OAuth trust must be established for using one of the Salesforce APIs, such as REST or SOAP API.
The technique or calling mechanism used for an integration solution is affected by the requirement. For example, if a remote process needs to be triggered from a user interface in Salesforce, an enhanced external service invoked from a flow, a Lightning component, or a Visualforce page can be used as the calling mechanism.