---
id: ADR-COM-FUL-007
title: Commit staff interventions before sending their audit events
product_area: commerce
module: fulfillment
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
decision: >-
  Commit the intervention with its change, then attempt external audit
  publication.
constrains:
  - WF-COM-FUL-009
  - DOM-COM-FUL-001
  - SVC-COM-FUL-fulfillment
  - SVC-COM-FUL-operations
  - SCR-COM-FUL-001
  - SCR-COM-FUL-002
origin: >-
  services-commerce:docs/migrations/operations/README.md#D-P5-10 (build
  decision); FND-COM-FUL-010
alternatives:
  - option: Publish external audit before committing the intervention.
    why_not: >-
      External publication would add failure and latency to the transaction
      retaining the act.
  - option: Use only the external audit store for the reason ledger.
    why_not: >-
      The current external provider does not store these events, so the local
      reason ledger is needed.
consequences:
  - A local intervention ledger survives external audit failure.
  - >-
    The selected audit provider currently logs instead of storing a Platform
    event.
  - >-
    External audit acceptance needs the Commerce action vocabulary to be
    supported.
supersedes: []
evidence:
  - >-
    services-commerce at c8b66a98:
    modules/fulfillment/services/register/obligation-interventions.ts,
    intervention-audit.ts;
    modules/operations/services/interventions/operations-interventions.ts;
    aws/cdk/commerce.function-environment.ts.
---

# Commit staff interventions before sending their audit events

## Context

A staff change needs a local reason and actor even when the external audit service fails.

## Decision

Commit the intervention with its change, then attempt external audit publication.

## Alternatives Considered

Publish external audit before committing the intervention. External publication would add failure and latency to the transaction retaining the act.

Use only the external audit store for the reason ledger. The current external provider does not store these events, so the local reason ledger is needed.

## Consequences

Commerce retains the local act. The current provider logs the event instead of creating a Platform audit record.
