Correlation Pattern
The Correlation data integration pattern is a design that identifies the intersection between two data sets and does a bi-directionally synchronization of that scoped dataset when an attribute occurs in both systems. Similar to how the bi-directional pattern synchronizes the union of the scoped dataset, the correlation process synchronizes the intersection of the data.
In the case of the correlation pattern, those attributes that reside in both systems may have been manually created in each systems (ie. like two sales individuals entering the same contact information in dual CRM systems). Or, these systems may have been brought in as part of a different integration. The correlation pattern will not care where those objects came from; it will treat the data agnostically and continue to synchronize them as long as they are in both systems.
Value of Correlation
This integration pattern is useful when there are two groups or systems that want to share data when they both have a record representing the same item/person. For example, a retail group has two stores in the same city and they would need to share data between both locations. So, when a customer enters either store, you would have a up to date record of all their transactions. This would be beneficial to allow customers to return products to either location.
To accomplish this integration, you decide to deploy two broadcast pattern integrations, one from store A to store B, and one from store B to store A. This will ensure that the data is synchronized; however you now have two integration applications to manage and maintain.
To resolve this inefficiency, use the bi-directional synchronization pattern between store A and B. Also, to increase efficiency, we design the synchronization to not bring the records of customers of store B if those patients have no association with store A and to bring it in real time as soon as the customer’s record is created. The correlation pattern is valuable since it bi-directionally synchronizes the objects on a “need to know” basis (rather than always moving the full scope of the dataset in both directions).
Usefulness of Correlation
This data integration pattern is most useful when having and maintaining the extra data is deemed more costly than beneficial. Additionally, this pattern allows us to scope out data that is seen as “unnecessary”. For example, as the dean of a university that is part of a larger university system, you need to generate reports across your school’s students.
Our report should not include those students that never attended your university; however, we would like to include the units that those students completed at other universities in our university system. In this scenario, the correlation pattern would allow you to synchronize only the information for the students that attended both universities.