In information systems designand theory, single source of truth is the practice of structuring information models and associated data schema such that every data element is mastered in only one place. Any possible linkages to this data element are by reference only. Because all other locations of the data just refer back to the primary "source of truth" location, updates to the data element in the primary location propagate to the entire system without the possibility of a duplicate value somewhere being forgotten. Deployment of an SSOT architecture is becoming increasingly important in enterprise settings where incorrectly linked duplicate or de-normalized data elements pose a risk for retrieval of outdated, and therefore incorrect, information. A common example would be the electronic health record, where it is imperative to accurately validate patient identity against a single referential repository, which serves as the SSOT. Duplicate representations of data within the enterprise would be implemented by the use of pointers rather than duplicate database tables, rows, or cells. This ensures that data updates to elements in the authoritative location are comprehensively distributed to all federated database constituencies in the larger overall enterprise architecture. SSOT systems provide data that are authentic, relevant, and referable.
Implementation
The "ideal" implementation of SSOT as described above is rarely possible in most enterprises. This is because many organisations have multiple information systems, each of which needs access to data relating to the same entities. Often these systems are purchased "off-the-shelf" from vendors and cannot be modified in non-trivial ways. Each of these various systems therefore needs to store its own version of common data or entities, and therefore each system must retain its own copy of a record. For example, an ERP system may store a customer record; the CRM system also needs a copy of the customer record and the warehouse dispatch system might also need a copy of some or all of the customer data. In cases where vendors do not support such modifications, it is not always possible to replace these records with pointers to the SSOT. For organisations wishing to implement a Single Source of Truth, three supporting technologies are commonly used:
An enterprise service bus allows any number of systems in an organisation to receive updates of data that has changed in another system. To implement a Single Source of Truth, a single source system of correct data for any entity must be identified. Changes to this entity are then published via the ESB; other systems which need to retain a copy of that data subscribe to this update, and update their own records accordingly. For any given entity, the master source must be identified. Any given system could publish information on a particular entity and also subscribe to updates from another system for information on some other entity. An alternative approach is point-to-point data updates, but these become exponentially more expensive to maintain as the number of systems increases, and this approach is increasingly out of favour as an IT architecture.
An MDM system can act as the source of truth for any given entity that might not necessarily have an alternative "source of truth" in another system. Typically the MDM acts as a hub for multiple systems, many of which could allow updates to different aspects of information on a given entity. For example, the CRM system may be the "source of truth" for most aspects of the customer, and is updated by a call centre operator. However, a customer may also update their address via a customer serviceweb site, with a different back-end database from the CRM system. The MDM application receives updates from multiple sources, acts as a broker to determine which updates are to be regarded as authoritative and then syndicates this updated data to all subscribing systems. The MDM application normally requires an ESB to syndicate its data to multiple subscribing systems. Customer Data Integration, as a common application of Master Data Management, is sometimes abbreviated CDI-MDM.
While the primary purpose of a data warehouse is to support reporting and analysis of data that has been combined from multiple sources, the fact that such data has been combined means that the data warehouse is often used as a de facto SSOT. Generally, however, the data available from the data warehouse are not used to update other systems; rather the DW becomes the "single source of truth" for reporting to multiple stakeholders. In this context, the Data Warehouse is more correctly referred to as a "single version of the truth" since other versions of the truth exist in its operational data sources.
Distributed SaaS data (DSD)
In cases where storing data centrally and managing it in reference locations is impractical, such as in B2B software data ecosystems where there are multiple sources of truth, companies use a DSD system. This system plays air traffic controller to provide a veneer of central data management and control by pushing updates to and enforcing data accuracy in the locations where it is stored.