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 -> cancelled4. 허용 상태 전이
reserved -> redeemed: 사용 확정 성공(검증 방식: none | location | qr)reserved -> expired: 유효시간 만료reserved -> cancelled: 사용자/정책 취소
종결 상태:
redeemed
expired
cancelled5. 불변 조건 (Invariants)
- 종결 상태에서 다른 상태로 전이하지 않는다.
redeemed는reserved에서만 전이 가능하다.- 수량 차감은
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
- 만료/취소 비율 급증
- 핵심 상태 집합 변경 요구 발생