---
id: ADR-CRM-REG-011
title: A Placement Write Advances the Version Only When the Region Moves
product_area: crm
module: regions
revision: 2
status: proposed
design_intent: confirmed
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Automatic regional writes increment record version and modification stamps only when the regional reference
  changes, preserving them when only the fingerprint changes.
constrains:
  - DOM-CRM-REG-003
  - STATE-CRM-REG-003
  - WF-CRM-REG-001
  - SVC-CRM-ENT-entities
origin: >-
  Andrew, 2026-10-12 (the assignment bumps a record’s version only when its region changes), cited in
  services-crm:docs/migrations/crm-regions/README.md#2026-10-12 — Final acceptance (second pass)
alternatives:
  - option: Increment record metadata for every regional persistence write.
    why_not: >-
      A deciding-address edit can produce the same region, and needless version increments would invalidate a
      caller’s just-saved version.
  - option: Leave versions unchanged even when placement moves.
    why_not: An editor could overwrite an unseen regional change without a concurrency refusal.
consequences:
  - Clients need a fresh read before overwriting a changed regional value.
  - >-
    Fingerprint-only updates may be captured internally but do not create an address reaction or increment
    visible record metadata.
supersedes: []
evidence:
  - 'services-crm at a8d1364f: modules/entities/services/persistence/contacts.ts (setContactRegionAssignments).'
---

# A Placement Write Advances the Version Only When the Region Moves

## Context

Placement follows record saving. Advancing versions for invisible input bookkeeping would make the caller’s fresh record version stale without a visible regional change.

## Decision

Entities regional persistence compares existing and new references within the update. A changed region advances record metadata; fingerprint-only maintenance preserves it. Ordinary saves omit the fingerprint and cannot erase that independent processing state.

## Alternatives Considered

Increment record metadata for every regional persistence write. A deciding-address edit can produce the same region, and needless version increments would invalidate a caller’s just-saved version.

Leave versions unchanged even when placement moves. An editor could overwrite an unseen regional change without a concurrency refusal.

## Consequences

Clients need a fresh read before overwriting a changed regional value. Fingerprint-only updates may be captured internally but do not create an address reaction or increment visible record metadata.
