---
id: ADR-MBR-MEM-006
title: Reserve Within Order Placement
product_area: membership
module: memberships
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Commerce placement calls Membership’s owner function to create the pending
  term and claim in the same commit boundary.
constrains:
  - DOM-MBR-MEM-002
  - STATE-MBR-MEM-004
  - WF-MBR-MEM-012
  - WF-MBR-MEM-013
  - SVC-MBR-MEM-commerce-participant
origin: >-
  The Commerce purchase preparation and reservation contract (claim mode sql),
  as the participant manifest declares it
alternatives:
  - option: Reserve through an asynchronous call after placement
    why_not: >-
      Post-placement reservation would leave a committed order without protected
      coverage during the gap.
  - option: Reserve at preparation
    why_not: >-
      Preparation-time reservation would let abandoned carts block membership
      days.
consequences:
  - Owner and reservation checks arbitrate competing checkouts.
  - >-
    The current owner writer’s unsupported history source prevents placement
    commit.
  - Voids release pending coverage while retaining fulfilled periods.
supersedes: []
evidence:
  - >-
    services-membership at 5994c270:
    db/migrations/20261018044117_commerce_participant.sql;
    modules/commerce-participant/db/commerce-claims.table.ts;
    contracts/participant-manifest.ts
---

# Reserve Within Order Placement

## Context

Reserved days must prevent another purchase while an order awaits fulfilment, and abandoned orders need to release them. The owner-function seam shares the order transaction.

## Decision

Commerce placement calls Membership’s owner function to create the pending term and claim in the same commit boundary.

## Alternatives Considered

Reserve through an asynchronous call after placement: Post-placement reservation would leave a committed order without protected coverage during the gap.

Reserve at preparation: Preparation-time reservation would let abandoned carts block membership days.

## Consequences

Owner and reservation checks arbitrate competing checkouts. The current owner writer’s unsupported history source prevents placement commit. Voids release pending coverage while retaining fulfilled periods.
