---
id: ADR-MBR-STR-004
title: Apply the Recorded Atomic Membership Merge
product_area: membership
module: structure
revision: 1
status: proposed
design_intent: confirmed
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  The recorded merge decision is realized by moving children, planned affiliations and identity-bound
  memberships together, with a newly introduced rule violation rejecting the complete transaction.
constrains:
  - WF-MBR-STR-002
  - DOM-MBR-STR-002
  - SVC-MBR-STR-structure
origin: >-
  Andrew's decision of 2026-10-18, guided build acceptance decision 1, "build the move now": services-
  membership:docs/migrations/unit-merge/README.md#P2c: a unit merge moves its members' affiliations
alternatives:
  - option: Leave members on the absorbed source for manual transfers.
    why_not: The cited product decision replaces that former behavior because the merge must carry memberships now.
  - option: Commit movable memberships and report the others.
    why_not: >-
      Partial completion would divide a single merge across incompatible results and require an additional
      recovery contract.
consequences:
  - The merge's local structural and membership writes commit together or roll back together.
  - A membership that cannot follow prevents the complete merge until its conflict is resolved.
  - 'Dues, settings, organization links and committee work remain on the source and are reported as leftovers.'
supersedes: []
evidence:
  - >-
    services-membership at 5994c270: modules/structure/services/tree/tree-edits.ts (mergeUnit);
    modules/memberships/services/affiliations/unit-merge.ts; README.md (2026-10-18 final acceptance decisions)
---

# Apply the Recorded Atomic Membership Merge

## Context

The earlier merge implementation moved child units without transferring member affiliations. Product subsequently directed that member movement be built into the merge.

## Decision

This record cites that decision rather than making it again. The service plans under locks, rejects new affiliation or identity conflicts and applies the plan in the structural transaction.

## Alternatives Considered

Leave members on the absorbed source for manual transfers. The cited product decision replaces that former behavior because the merge must carry memberships now. Commit movable memberships and report the others. Partial completion would divide a single merge across incompatible results and require an additional recovery contract.

## Consequences

The merge's local structural and membership writes commit together or roll back together. A membership that cannot follow prevents the complete merge until its conflict is resolved. Dues, settings, organization links and committee work remain on the source and are reported as leftovers.
