A non-transitory computer readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
- identifying, from a plurality of input document streams received from a plurality of data sources, a first document having a first schema comprising first data associated with a first user system and a second document having the first schema comprising second data associated with a second user system, wherein the first data comprises one or more reference-type identifiers;
- transforming the first document from the first schema to a second schema associated with the first user system to generate a first transformed document comprising at least a portion of the first data;
- identifying a first graph key associated with the first transformed document;
- matching the first graph key to a graph node key associated with a first graph node of a first data graph associated with the first user system stored in a graph database;
- merging the at least the portion of the first data of the first transformed document into the first graph node of the first data graph associated with the first user system;
- determining that at least one of the one or more reference-type identifiers of the first data matches at least one entity identifier of an existing graph node;
- establishing, in response to the determining, a graph edge between the first graph node and the existing graph node of the first data graph based on the one or more reference-type identifiers of the first data;
- transforming the second document from the first schema to a third schema associated with the second user system to generate a second transformed document;
- merging the second transformed document into a second data graph associated with the second user system;
- identifying first updated data resulting from one or more updates to the first data;
- identifying a set of updated fields of the first graph node based on the first updated data, the set of updated fields including a first field associated with the first updated data;
- identifying a first label associated with the first graph node;
- identifying a first and a second output specifications having respective specification labels matching the first label;
- identifying a first output schema associated with the first output specification, wherein the first output schema includes the first field;
- generating a first output document comprising the first data and the first updated data, the first output schema describing how to compose the first output document;
- suppressing generation of a second output document for the first graph node in accordance with the second output specification, wherein a second output schema associated with the second output specification does not include the first field;
- publishing the first output document to the first user system;
- generating a second output document comprising second data from the second data graph in accordance with a second output schema associated with the second user system, the second output schema describing how to compose the second output document;
- and
- publishing the second output document to the second user system.