---
id: ADR-PFM-INT-012
title: Edits carry the version read; lifecycle actions are guarded by state
product_area: platform
module: integrations
revision: 1
status: proposed
design_intent: open
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
decision: >-
  Require the read version for configuration edits and reject stale replacements. Existing integration
  lifecycle actions instead lock and check current standing without receiving a client-held version.
constrains:
  - DOM-PFM-INT-001
  - DOM-PFM-INT-002
  - DOM-PFM-INT-003
  - DOM-PFM-INT-005
  - DOM-PFM-INT-006
  - STATE-PFM-INT-002
  - STATE-PFM-INT-003
  - SVC-PFM-INT-integrations
  - SVC-PFM-INT-extensions
  - SVC-PFM-INT-workflow-actions
alternatives:
  - option: Add client-held versions to every lifecycle action.
    why_not: This would align with the record-write standard but requires changes to current routes and callers.
  - option: Allow edits without version checks.
    why_not: An administrator could overwrite intervening configuration changes without learning about them.
consequences:
  - A stale edit requires reloading the current record.
  - >-
    State guards serialize lifecycle mutations but do not tell the second administrator about every
    intervening change.
  - Workflow replacement operations carry a complete document and its read version.
origin: docs/standards/record-write-contracts.md#W1 (D-05); FND-PFM-INT-036; OQ-PFM-INT-006
supersedes: []
---

# Edits carry the version read; lifecycle actions are guarded by state

## Context

The present lifecycle exception is an observed mismatch with the standard, not approval of that exception.

## Decision

Require the read version for configuration edits and reject stale replacements. Existing integration lifecycle actions instead lock and check current standing without receiving a client-held version.

## Alternatives Considered

Add client-held versions to every lifecycle action. This would align with the record-write standard but requires changes to current routes and callers.

Allow edits without version checks. An administrator could overwrite intervening configuration changes without learning about them.

## Consequences

A stale edit requires reloading the current record.

State guards serialize lifecycle mutations but do not tell the second administrator about every intervening change.

Workflow replacement operations carry a complete document and its read version.
