clarencen/lshift — Issue #118: Streamline difference event processing
Author: clarencen
Created: 2011-11-14 22:41:46+00:00
State: open

This ticket is an in-memory variant of #294.

The following process should be used to handle difference events in a domain:

* Scan proceeds as normal. The current match buffering code is removed.
* At the completion of a scan, a sync operation (terminology TBD) is initiated. This operation will:
* Generate a sync GUID or increasing ID
* Iterate over all unmatched records in the Version Correlation Store, and generate a difference event with the data from the store along with the sync ID
* The differences store will create new differences where the data is unique, and update existing differences with the sync GUID where it isn't
* At the completion of the correlation store iteration, a message is sent to remove all differences that aren't marked with the current sync id. This will remove (that is, mark as matched) any difference that isn't currently in the correlation store (and therefore has reached a matched state)