Adaptor Intro: An introduction to YOUnite and Adaptors can be found on the Introduction to YOUnite page
Adaptor Configuration: How to configure and manage adaptors is covered on the Managing Adaptors page.
Adaptor Development: Developing adaptors can be found on the YOUnite Adaptor Guide for Java Developers page.
In order to provide data management, the YOUnite Data Hub needs to know where the data domain and properties live. Federated Master Data Records (MDRs) are stored in the source system (federated domain) instead of centrally in the Data Hub. The Data Hub contains a reference to the federated domain so it can retrieve the data. In order for this to happen the federated domain elements must be mapped to the YOUnite Data Hub. This mapping can happen organically or by creating a master list of all source system entities that need to be mapped to YOUnite.
The mapping process includes creating YOUnite data records for each domain entity using the POST /drs request. YOUnite will then retain the uniqueness rules for that data record. Once the data records exists in YOUnite, the source entities connected to YOUnite can be mapped through adaptors . The adaptor for the domain must be paused while you map the entities in the systems and services attached to the adaptors to the YOUnite data records, linking them together.
See Mapping for Federated Domains for details.
An inbound uni-directional adaptor connects the YOUnite datahub to a source system in the following way:
An outbound uni-directional adaptor connects the YOUnite data to a source system in the following way:
A bi-directional adaptor performs all the functions of both an uni-directional inbound and outbound adaptor.
When developing a bi-directional adaptor, its imperative that the developer understand the "Infinite Update Issue" discussed below. A well written equals() method may be required to avoid this issue.
Infinite updates can occur when bi-directional adaptors are required for source systems that have less than optimal change event notification APIs (eventing).
A bi-directional adaptor can be thought of as having a right and left brain where each side isn't always aware of all the goings-on in the other side.
With a bi-directional adaptor, one side of the adaptor accepts data events from YOUnite and applies them to the source system (MDM side) while the other side waits to be notified of change events from the source system and sends the data events to YOUnite (source system side). Optimally, the source system has robust APIs that allow the adaptor developer to listen and be notified of specific change events inside of the source system (i.e. robust eventing).
However, if the source system has weak eventing then the adaptor developer needs to poll for changes instead of being notified. When the MDM side of the adaptor receives a data event from YOUnite and writes it to the source system, the source-system side detects the change but has no way of knowing if this was a change initiated by YOUnite or by the source system itself (e.g. a new user added to the customer DB via its normal business logic).
In the case of a source system with week eventing, as changes are received from YOUnite, they need to be stored in a short-term Change Detection Cache in the SDK (TBD). When the change is detected, the adaptor can look in the cache to see if it is equals(), and if it is, it can then be ignored. The entry is then removed from the short-term cache.
When an adaptor propagates changes made by itself then an infinite update loop in the MDM ecosystem can occur and create "governance chaos" as shown in the following scenarios:
Having two uni-directional adaptors (one inbound only and the other outbound only) should be avoided unless the source system has strong eventing that allows the adaptor to filter out changed initiated by itself. Otherwise it will be difficult to avoid the "Infinite Update Issue" without adding special caches to implement the equals() method described above.
Developing adaptors can be the most difficult task in the MDM development and implementation phases. While it is unlikely an organization will swap out an existing enterprise applications to meet its governance needs (although, it may be required in some circumstances), an organization can require new applications and vendors meet certain MDM and data governance requirements so that their solutions can be made MDM/Governance aware.
To meet the needs of MDM and governance, new applications and solutions must have robust APIs that allow: