Data governance refers to the processes used to ensure the availability, usability, integrity, and security of all the data employed by your organization. In the case of ProfileSync, data governance involves at least two things. First, you need to understand the type of data stored in a Janrain user profile. In general, this data:
- Is entered by the user, and is relatively stable. For example, a given user is unlikely to change his or her email address or phone number on a daily basis.
- Is used operationally, and not for historical purposes.
- Is non-transactional; that is, the data is not used for things like tracking purchases or making appointments.
- It not volatile. "Volatile" data is data that is stored only in random access memory (RAM) or exists only in transit, and would disappear in the event of a computer failure.
You should also keep in mind that Janrain user profile data can be returned using the Janrain REST APIs. If you rarely need to retrieve user profile data (and rarely need to copy that data to a target API), you might not need ProfileSync. After all, ProfileSync is designed for situations when "self-service" data retrieval is infeasible. If you routinely need to process a large number of profile changes to your target API, then ProfileSync will be faster, more efficient, and more cost-effective.
Second, you must establish a policy for determining data primacy. For example, suppose you've created a Salesforce account for a user. If the user changes that data in his or her user profile, do you want that data to overwrite the existing Salesforce data? In many, if not most, cases, the answer is yes; after all, that's why you are using ProfileSync in the first place. However, there might be certain attributes (or certain attributes for certain users) that should notbe overwritten. That's something you must determine in advance.
Along similar lines, you must select a unique identifier for each user. We strongly recommend using the Janrain UUID (Universally Unique Identifier) as your foreign key. (In the database world, a foreign key is a database field defined in Database A that, in this case, uniquely identifies a user in Database B.)