ADR-DS-010_예약 상태 머신

ADR-DS-010_예약 상태 머신

ADR-DS-010 예약 상태 머신

1. Metadata

  • ADR ID: ADR-DS-010
  • Title: Reservation State Machine
  • Status: draft
  • Date: 2026-03-08
  • Owner: YSY
  • Related ADRs: ADR-DS-000, ADR-DS-030, ADR-DS-040
  • Supersedes:
  • Superseded By:

2. Context

예약 상태 용어를 단일 상태 머신으로 통일하지 않으면 결제/검증/권한 규칙이 문서마다 충돌한다.

3. Decision

예약 상태 집합을 아래로 고정한다.

  1. hold: 결제 진행 중 임시 점유 상태
  2. reserved: 예약 확정 후 사용 대기 상태
  3. redeemed: 사용/수령 완료 상태
  4. expired: 시간 만료 상태
  5. cancelled: 사용자/시스템 취소 상태

기본 전이 규칙:

  1. hold -> redeemed: 결제 성공(기본 정책)
  2. hold -> expired | cancelled: 결제 실패/타임아웃
  3. reserved -> redeemed: 검증 완료 또는 verification_method=none
  4. reserved -> expired: 만료 시간 도달
  5. reserved -> cancelled: 취소 정책 충족

4. Consequences / Impact

  1. arrived, checkin 같은 중복 개념을 제거할 수 있다.
  2. 결제·검증·권한을 상태 전이 조건으로 분리할 수 있다.
  3. 수량 계산은 hold + reserved를 점유로 본다.

5. Validation

  • DB/앱에서 상태 집합이 동일하다.
  • 허용되지 않은 전이는 서버에서 차단된다.
  • 수량 계산 시 hold + reserved가 반영된다.