---
id: ADR-MBR-MEM-007
title: Recognize Partner Obligations by Their Identifiers
product_area: membership
module: memberships
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Fulfilment, cancellation, enforcement and decision handling use the partner’s
  stable identifier to recognize repeated work.
constrains:
  - SVC-MBR-MEM-commerce-participant
  - SVC-MBR-MEM-applications
  - WF-MBR-MEM-012
  - WF-MBR-MEM-014
  - WF-MBR-MEM-015
  - WF-MBR-MEM-016
origin: >-
  The Commerce participant contract and the Submissions decision delivery
  contract, both at least once
alternatives:
  - option: Exactly-once delivery
    why_not: Exactly-once invocation is not part of these partner delivery contracts.
  - option: Membership's own deduplication keys
    why_not: >-
      An unrelated local key would not reliably match the identifier that the
      partner repeats.
consequences:
  - >-
    Unique stored identifiers support repeated delivery without a distributed
    lock.
  - Components can request retry while waiting for package fulfilment.
  - >-
    Membership-generated order requests use stable decision, action or request
    keys where applicable.
supersedes: []
evidence:
  - >-
    services-membership at 5994c270:
    modules/memberships/db/membership-terms.table.ts:membership_terms_commerce_authorization_uidx;
    modules/commerce-participant/db/*.table.ts;
    modules/applications/db/applications.table.ts:applications_decision_uidx
---

# Recognize Partner Obligations by Their Identifiers

## Context

Retryable partner work can be delivered again after a lost response. Each operation needs a durable way to recognize the same obligation.

## Decision

Fulfilment, cancellation, enforcement and decision handling use the partner’s stable identifier to recognize repeated work.

## Alternatives Considered

Exactly-once delivery: Exactly-once invocation is not part of these partner delivery contracts.

Membership's own deduplication keys: An unrelated local key would not reliably match the identifier that the partner repeats.

## Consequences

Unique stored identifiers support repeated delivery without a distributed lock. Components can request retry while waiting for package fulfilment. Membership-generated order requests use stable decision, action or request keys where applicable.
