Salesforce Integration Patterns
How to decide the strategy for integration?
There are currently innumerable applications out there for which there is a need to integrate with Salesforce. With a few integration scenarios covered so far and so many yet to be covered it should however be evident that each integration scenario is unique and requires a different strategy. But, in spite of the uniqueness there always are few common requirements involved that are usually the target for the developers and architects to be resolved. Salesforce Integration Patterns addresses key “archetype” integration scenarios, where each pattern describes the approach and design for that particular integration scenario.
List of Patterns
|Remote Process Invocation - Request and Reply||Salesforce invokes a process on a remote system and waits till that process is completed, and then tracks the state based on the response receieved from the remote system.|
|Remote Process Invocation - Fire and Forget||Salesforce invokes a process on a remote system and continues instead of waiting for the completion of the process. The remote process receives and acknowledges the request and then hands off control back to Salesforce.|
|Batch Data Synchronization||When data stored in a connected external system changes the same should be reflected in Salesforce, and vice versa. Updates in either direction are done in batches.|
|Remote Call-In||Data in Salesforce is created, retrieved, updated, or deleted by a remote system.|
|UI Update Based on Data Changes||The Salesforce user interface must automatically reflect the changes done to a particular objects data in Salesforce.|
Salesforce Integration Patterns can be broadly classified into below two categories:
Data Integration: These patterns are used to address the requirement of synchronizing data between Salesforce and an external system. It is the simplest type of integration to implement, but requires proper information management techniques and includes aspects of Data Governance, De-Duplication, Master Data Management etc.
Process Integration: These patterns often require complex design, testing, exception handling etc. and is used to address the requirements of a business process to leverage two or more applications to complete its task. Multiple applications are arranged either as Orchestration (one application is the central "Controller" and rest are participants) or Choreography (all applications are participants and there is no central controller).
Pattern Selection Guide
Although choosing the best integration strategy is not trivial due to the fact that there are numerous aspects to take into consideration and many tools that can be used; the below matrix could be of a significant help in determining the best fit for the integration requirements.
Pattern Selection Matrix
|Source/Target||Integration type||Timing||Pattern to consider|
|Salesforce to External System||X||X||Remote Process Invocation - Request and Reply|
|X||Remote Process Invocation - Fire and Forget|
|X||X||Remote Process Invocation - Request and Reply|
|X||UI Update Based on Data Changes|
|External System to Salesforce||X||X||Remote Call-In|
|X||Batch Data Synchronization|