Merge
What It Models
A merge combines the requested execution and its permanent history in one model. The durable job, retained originals, aliases, participant history pointers and contact announcement explain both the work and its eventual result.
Identity and Attributes
Captured participant labels allow history to remain readable after deletion. Successful attempts retain originals and final values; failed attempts retain request context and their reason without a successful outcome. The running claim is inside the business transaction and is not a separately committed progress marker.
Relationships
One plan can produce successive failed attempts before a successful merge. Ordinary survivor saves and absorbed deletions use Entities persistence, while merge-owned functions move references and prepare related rows. Outside dismissals remain owned by duplicate persistence.
Invariants
Storage checks constrain status, required failure data, active-attempt uniqueness and alias reuse. Service execution supplies atomicity, overlapping-merge locks and the committed audit and event writes.
How It Is Stored and Shared
The merges module owns history, job records and aliases in CRM. Export includes history and aliases; privileged workspace purge removes them. Job roots omit workspace row policies for monitoring and reconciliation, while their customer scope remains mandatory for workspace jobs.
Open Design Questions
A later ordinary deletion can leave alias destinations missing. Individual removal of retained originals and organization-merge announcements still need implementation or product resolution, and report consumers do not yet have full survivor-name resolution.