ADR-DS-010_Reservation State Machine

ADR-DS-010_Reservation State Machine

1. 기본 정보

  • ADR ID: ADR-DS-010
  • 제목: Reservation State Machine
  • 상태: Accepted
  • 작성일: 2026-03-02
  • 작성자: YSY
  • 관련 ADR: ADR-DS-012, ADR-DS-064
  • Supersedes: N/A
  • Superseded By: N/A

2. 배경 (Context)

예약 상태 모델이 문서마다 다르게 표현되어 전이 규칙과 수량/만료 규칙이 충돌했다. 상태 집합을 단일 모델로 고정해 도메인/DB/UX 해석을 통일한다.


3. 결정 (Decision)

Reservation 상태는 아래 4개만 사용한다.

reserved
redeemed
expired
cancelled

정상 전이:

reserved -> redeemed

예외 전이:

reserved -> expired
reserved -> cancelled

4. 허용 상태 전이

  • reserved -> redeemed: 사용 확정 성공(검증 방식: none | location | qr)
  • reserved -> expired: 유효시간 만료
  • reserved -> cancelled: 사용자/정책 취소

종결 상태:

redeemed
expired
cancelled

5. 불변 조건 (Invariants)

  • 종결 상태에서 다른 상태로 전이하지 않는다.
  • redeemedreserved에서만 전이 가능하다.
  • 수량 차감은 reserved -> redeemed 전이와 동일 트랜잭션에서만 발생한다.
  • 만료/취소 확정은 서버가 수행한다.

6. 경계 및 책임 (Boundaries)

  • 상태 전이 정의와 정책은 DS-010이 소유한다.
  • 시간/만료 규칙은 ADR-DS-012를 따른다.
  • 수량/동시성 계산은 ADR-DS-064를 따른다.

Template v2 Addendum

In Scope

  • Reservation 상태 집합, 허용/금지 전이, 종결 상태

Out of Scope

  • 결제/PG 연동 상세, UI 구현 상세, DB 인덱스 설계 상세

Boundaries

  • 상태 모델 정의는 DS-010 소유
  • 시간/만료는 DS-012 소유
  • 수량/동시성은 DS-064 소유

Source of Truth (SoT)

  • 상태 모델: ADR-DS-010
  • 시간/만료: ADR-DS-012
  • 수량/동시성: ADR-DS-064

Validation

  • 상태 전이 테스트(허용/금지) 자동화
  • 종결 상태 재전이 금지 검증

Revisit Conditions

  • 만료/취소 비율 급증
  • 핵심 상태 집합 변경 요구 발생