---
id: ADR-COM-ORD-013
title: Sales are never deleted; history is an append-only trail
product_area: commerce
module: orders
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Retain financial purchase records and local append-only history, ending purchases through states rather than
  application deletion.
constrains:
  - DOM-COM-ORD-002
  - DOM-COM-ORD-005
  - DOM-COM-ORD-004
  - SVC-COM-ORD-orders
  - RESP-COM
origin: >-
  services-platform docs/proposals/commerce-orders/06-domain-and-database-model.md sections 4, 11 and 12, as
  cited by the code (FND-COM-ORD-048)
alternatives:
  - option: Replace local trails with Platform history immediately
    why_not: Commerce has not implemented that Platform integration.
  - option: Delete unaccepted numbered sales
    why_not: A provisional invoice can already refer to an unaccepted numbered sale.
consequences:
  - Local history describes business actions rather than a Platform field-change trail.
  - No external business event publication is declared.
  - Finished-cart cleanup is intended but unimplemented.
supersedes: []
evidence:
  - >-
    services-commerce at c8b66a98: modules/orders/db/order-events.table.ts; order-lines.table.ts (RESTRICT
    keys); modules/checkout/db/checkout-events.table.ts.
---

# Sales are never deleted; history is an append-only trail

## Context

Purchases and their processing trail remain evidence for financial and support work.

## Decision

Keep order records and local immutable history through void and cancellation, with workspace removal as the deletion boundary.

## Alternatives Considered

Platform history is not adopted in this implementation. Deleting an unaccepted numbered sale could remove the purchase linked to a provisional invoice.

## Consequences

The local trail records business actions without external business-event publication. Intended completed-cart retention has no running cleanup.
