Salesforce Integration Architect Part 5: Build Solution
This topic includes the following objectives:
- Given a use case that includes technical requirements, constraints or drivers, identify the considerations when designing and implementing API(s), both Salesforce as an API provider and Salesforce as an API consumer.
Salesforce offers various APIs for inbound integration, including REST API, SOAP API, Bulk API 2.0, and Streaming API. Various considerations and limitations apply to the use of an API. For example, Salesforce limits the number of API calls per 24-hour period, which depends on the edition and number of licenses.
Enhanced External Services or REST/SOAP callouts can be used to invoke an external API. Considerations related to authentication, data format, and schema definition are applicable to the use of an external service. Various governor limits, such as the maximum number of callouts allowed in an Apex transaction, apply to REST/SOAP callouts
- Given a use case, identify the considerations when choosing the right option in making an outbound call to an external system.
Salesforce offers various options for making outbound calls from Salesforce. These include Enhanced External Services, Apex SOAP Callouts, Apex REST Callouts, and Outbound Messaging.
Various considerations apply for using an outbound integration technique. For example, a remote site setting must be created to make a REST or SOAP callout using Apex code. A named credential must be defined for invoking an external service action from a flow. Outbound Messaging can be configured to send a session ID to allow the external system to make callbacks.
- Given a use case, describe what should be considered when building a scalable solution.
A system is referred to as being scalable when it doesn’t need to make adjustments in order to operate normally when there is a substantial increase in workload as a result of user spikes or growth in data volume. In this topic, the considerations and recommendations for attaining scalability especially in environments with large data volume will be covered. Identifying the factors that impact scalability, defining a data management plan, and tracking org performance on a regular basis are key considerations to building a scalable solution.
- Given a use case, determine error handling for different integration options.
Salesforce provides several tools for integrating the platform with other systems. A specific set of solution options are available based on the integration pattern that is implemented. When using these tools such as External Services, Outbound Messaging, Salesforce APIs, Platform Events, Change Data Capture, and Salesforce Connect in an integration solution, it is essential to be able to identify when errors can occur, which system should perform custom error handling, and even more so how to handle the errors to maintain a stable and reliable application.
In this topic, error handling mechanisms related to these integration options will be covered as well as use cases that illustrate how they’re implemented in real-world scenarios.
- Given a use case, create a security solution for inbound or outbound integrations.
When integrating external applications that perform inbound requests to Salesforce, it is critical to be aware of the security implications, considerations, and features in the different layers of the platform architecture. Implementing security features available in the authentication, network, session, and data layers helps deliver secure solutions while providing reliable services to external clients.
Salesforce also provides recommendations for securing an integration solution where the org performs outbound calls to the external application such as data encryption, 2-way SSL, etc. In this topic, related features, recommendations, and considerations as well as use cases will be covered.
- Given a use case, identify the factors needed to build resilience in an integration solution for system updates.
As part of this objective you should understand the key factors that should be identified to build resilient integration solutions. Different factors need to be considered for different integration patterns. For instance, for building resilience in Remote Process Invocation – Request & Reply solutions, recovery, timeliness, and state management should be considered. Changes should not be committed until a successful response has been received from the remote system. Retries and configurable timeout should be utilized for Apex callouts if necessary.
Ongoing state tracking using keys can be considered for various integration solutions. For example, when using batch data synchronization, Salesforce can store the unique ID returned by the remote system, and prior to performing any operations in the future, the ID can be checked to avoid record duplication.
Reliable messaging is also an important consideration for ensuring resilience in certain types of integration solutions. For example, when using REST API or SOAP API, the remote system should implement a reliable messaging system for timeout and error handling scenarios.