---
id: ADR-COM-FUL-022
title: Retain Commerce history in its own append-only records
product_area: commerce
module: fulfillment
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
decision: >-
  Describe the existing Commerce logs and treat Platform adoption as future work
  requiring its owning contract.
constrains:
  - DOM-COM-FUL-001
  - DOM-COM-FUL-004
  - DOM-COM-FUL-005
  - SVC-COM-FUL-fulfillment
  - SVC-COM-FUL-shipping
  - SVC-COM-FUL-inventory
  - RESP-COM
origin: >-
  services-commerce:AGENTS.md#Commerce ("When Commerce gets something CRM or
  Accounting already has, follow Platform's rule for it ... None of them exists
  in Commerce yet"); FND-COM-FUL-042
alternatives:
  - option: Adopt Platform history and change-event publication now.
    why_not: >-
      Adoption needs the Platform contract and registration work missing from
      the pinned implementation.
  - option: Allocate import ownership separately from route ownership.
    why_not: This alternative needs a separate product and integration decision.
consequences:
  - >-
    Commerce retains internal operation histories rather than a Platform
    record-history stream.
  - The module exposes no public change-event publication contract.
supersedes: []
evidence:
  - >-
    services-commerce at c8b66a98: AGENTS.md;
    modules/fulfillment/services/register/register-events.ts;
    modules/shipping/db/shipment-events.table.ts;
    modules/inventory/db/inventory-movements.table.ts.
---

# Retain Commerce history in its own append-only records

## Context

Commerce retains staff and delivery history without adopting Platform record history or change-event publication.

## Decision

Describe the existing Commerce logs and treat Platform adoption as future work requiring its owning contract.

## Alternatives Considered

Adopt Platform history and change-event publication now. Adoption needs the Platform contract and registration work missing from the pinned implementation.

Allocate import ownership separately from route ownership. This alternative needs a separate product and integration decision.

## Consequences

Internal histories are not public change events. Platform history views cannot read an equivalent stream from this implementation.
