Most products talk about the integration pattern their platform is capable of supporting. In the modern microservice architecture - If you put together the list of integration strategies that that possibly be applied in any platform, I think they can be broadly categorised into a 5 main integration patterns.
Here is an attempt from me to classify theses integration pattens and recommendation on when they should be used:
| Pattern | Scenario | Usage Reccomendation |
1 | Remote Procedure Call—Request and Response | Invokes a process on a remote system, wait for completion of that process, and then tracks state based on the response from the remote system. | To be used for sequential processes where parallel processing of resources is not an acceptable solution. Essentially Synchronous processes. |
2 | Remote Procedure Call—Fire and Forget | Invokes a process in a remote system but do not wait for completion of the process. Instead, the remote process receives and acknowledges the request and then hands off control back to caller. | To be used when you need to remove dependency on system's processing latency. Essentially Asynchronous processes. |
3 | Batch Data Synchronization | Data is processed at a fixed frequency interval in batch processes | To be used when Real-time data processing is not a success factor. Also, for large data-sets which can be processed in non-peak hours to avoid performance impact. |
4 | Event stream notification | The integrating destination system automatically updates as a result of changes to Source data through event streaming. | To be used for real time processing in a producer-consumer interaction model where ensuring delivery is critical. Also, when dealing with legacy system (coupled with circuit breaker pattern to avoid throttle conditions) and in scenarios when throughput is a governing factor. |
5 | Data Virtualization | Accesses external data in real time. This removes the need to persist data in source system and then reconcile the data between source and the external system. | To be used in cases where storing external data is not possible due business or technical limitation/needs. |
If you can choose the right integration pattern in your integration design phase for your specific business case, building an integration that is fit for purpose gets easier.
Reference:
You should also read the integration patterns discussed at Pattern Summary | Integration Patterns and Practices | Salesforce Developers
Comentários