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
hold는 결제 진행 중 임시 점유 상태로만 사용한다.- Hold 만료 기본값은
90초, 최대값은180초로 한다. - 결제 재시도 기본값은
2회로 한다. (운영 파라미터로 조정 가능) - 결제 성공 시 예약 상태는 즉시
redeemed로 전이한다. - 결제 실패/타임아웃 시
expired또는cancelled로 전이한다. - 동일 사용자+슬롯 조합에 대해 활성 hold 중복 생성은 허용하지 않는다.
- hold와 reservation 간 참조 무결성을 유지한다.
4. Consequences / Impact
- 결제 지연 구간 경합을 줄이고 점유 공정성을 높일 수 있다.
- 결제 성공 후 상태가 단순해져 후속 검증 분기가 줄어든다.
5. Validation
- Hold 타이머(90/180초)와 재시도(2회)가 설정값으로 반영된다.
- 결제 성공 시
hold -> redeemed전이가 일관되게 동작한다. - Hold 만료 시 수량이 즉시 복구된다.
- 동일 사용자+슬롯 조합의 활성 hold 중복 생성이 차단된다.
- hold 정리 시 reservation 참조 무결성 위반이 발생하지 않는다.