---
id: ADR-MBR-MEM-014
title: Settle Attributed History Before Commit
product_area: membership
module: memberships
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Temporal capture and deferred revision settlement commit attributed history
  with the business change and reject unacceptable attribution.
constrains:
  - DOM-MBR-MEM-006
  - SVC-MBR-MEM-history
  - WF-MBR-MEM-026
origin: >-
  The membership architecture's history and reporting chapter (section 2.2),
  following the record history package as CRM's contacts use it
alternatives:
  - option: History written by each service operation
    why_not: Per-operation history writes could be omitted by an individual code path.
  - option: 'Versions only, without revisions'
    why_not: >-
      Versions alone would not provide the grouped actor and source timeline
      that staff read.
consequences:
  - Relevant supported changes cannot commit without the required attribution.
  - >-
    The Commerce owner function must use a source accepted by history before
    placement can succeed.
  - >-
    Revision creation has no dispatcher delay; only transport cleanup follows
    commit.
supersedes: []
evidence:
  - >-
    services-membership at 5994c270: modules/history/**;
    db/migrations/20261018034347_snapshots_and_history.sql;
    db/migrations/20261018044117_commerce_participant.sql:memberships_versions_capture
---

# Settle Attributed History Before Commit

## Context

Staff need a reliable account of record changes, and reconstruction needs previous values. Database capture applies to all supported writers, including partner functions.

## Decision

Temporal capture and deferred revision settlement commit attributed history with the business change and reject unacceptable attribution.

## Alternatives Considered

History written by each service operation: Per-operation history writes could be omitted by an individual code path.

Versions only, without revisions: Versions alone would not provide the grouped actor and source timeline that staff read.

## Consequences

Relevant supported changes cannot commit without the required attribution. The Commerce owner function must use a source accepted by history before placement can succeed. Revision creation has no dispatcher delay; only transport cleanup follows commit.
