The act of propagating changes across a system of nodes, such that all the participating nodes in the have the full set, or subset, of changes their individual configurations require.
The method nodes in a system use to process change sets to achieve the same state for the objects those changes affect.
Metadata about the changes a node holds are communicated to other nodes.
Nodes use the metadata to isolate the changes they need.
The missing changes are sent between nodes until they arrive at the set/subset they need.
Has changes 1 and 3,
wants all changes
Has changes 2 and 4,
wants all changes
Has no changes,
wants changes 1 and 4
The change is inspected and discarded if it is a duplicate or doesn't comply with permission requirements.
If the change is valid, it is grouped for processing with the object it represents
Changes are compiled together using a merge strategy, which, if deterministic, should yield the same state for a given object across all nodes
{ Modify ABC }
{ Create XYZ }
{ Create ABC }
{ Create XYZ }
Changes
Time
CRDTs for Merging Data