ADR-DS-030_Hold 및 결제 상태 전이

ADR-DS-030_Hold 및 결제 상태 전이

ADR-DS-030 Hold 및 결제 상태 전이

1. Metadata

  • ADR ID: ADR-DS-030
  • Title: Hold 및 결제 상태 전이
  • Status: draft
  • Date: 2026-03-08
  • Owner: YSY
  • Related ADRs: ADR-DS-010, ADR-DS-020
  • Supersedes:
  • Superseded By:

2. Context

결제 진행 중 임시 점유와 결제 확정 이후 상태를 분리하지 않으면 동시성 오류가 발생한다.

3. Decision

  1. hold는 결제 진행 중 임시 점유 상태로만 사용한다.
  2. Hold 만료 기본값은 90초, 최대값은 180초로 한다.
  3. 결제 재시도 기본값은 2회로 한다. (운영 파라미터로 조정 가능)
  4. 결제 성공 시 예약 상태는 즉시 redeemed로 전이한다.
  5. 결제 실패/타임아웃 시 expired 또는 cancelled로 전이한다.
  6. 동일 사용자+슬롯 조합에 대해 활성 hold 중복 생성은 허용하지 않는다.
  7. hold와 reservation 간 참조 무결성을 유지한다.

4. Consequences / Impact

  1. 결제 지연 구간 경합을 줄이고 점유 공정성을 높일 수 있다.
  2. 결제 성공 후 상태가 단순해져 후속 검증 분기가 줄어든다.

5. Validation

  • Hold 타이머(90/180초)와 재시도(2회)가 설정값으로 반영된다.
  • 결제 성공 시 hold -> redeemed 전이가 일관되게 동작한다.
  • Hold 만료 시 수량이 즉시 복구된다.
  • 동일 사용자+슬롯 조합의 활성 hold 중복 생성이 차단된다.
  • hold 정리 시 reservation 참조 무결성 위반이 발생하지 않는다.