Closed
Description
Description
예약 동시성 이슈와 갑자기 뛰어오르는 트래픽에 대응하기 위해 대기열 시스템을 설계하고자 합니다.
#33 를 참고해 대기열 시스템을 설계해주세요
To do
-
(상시) 관련 자료 요약/기록
- 자료에 대한 간단한 정리를 댓글에 첨부 (언급된 요약을 통해 follow-up 예정)
- "link: 글에서는 a와 b의 형식을 사용하여 설계..."
-
1. 시스템 설계도, 흐름도 등 전반적인 Diagram 설계
- 러프한 손 다이어그램부터 프로그램을 사용한 다이어그램
-
2. 단계별 설계
- 가장 간단한 설계 => 문제상황 => 확장(해결방법) => 새로운 문제 상황 => 새로운 확장(해결방법) => ...
-
3. 구현 가능한 설계 깊이
- 각 시스템간 API Request Flow 다이어그램 작성
- 어떤 데이터를 주고 받아서, 대기열 기능을 가능하게 하는지, 실제 요청 전문(body) 설계
- 프론트엔드 고려 (이벤트 상세 페이지 : 예약 버튼 => 날짜/시간선택 페이지 => 좌석 선택 페이지 => 최종 정보 입력 후 완료 버튼 => 예약 완료
- 위 페이지 중 정확히 ‘어디에’ 대기열 기능이 존재하는지 (각 예약 페이지별로 대기열이 있어야 하는지, 처음 예약버튼 클릭시에만 존재하는지, 아니면 최종 ‘완료버튼‘에만 대기열이 존재할 것인지 )
- 각 페이지마다 API 요청이 존재해야하는지, 마지막 완료버튼클릭시 한번만 Reservation 요청을 Backend로 전송할지 고려
- 마지막 예약시 좌석 중복으로 인해 튕기는 등의 행위를 방지할려면 어떻게 할 수 있는지
- 물런 위 작업에 많은 리소스가 소모된다면 구현하지 않을 수 있습니다.
Test Checklist
- 1. 서버가 현재 가진 처리량보다 수십배 높은 요청이 왔을때 문제 해결
- 2. 같은 이벤트에 대해 동시 예약을 했을때 동시성 문제 해결
Metadata
Metadata
Assignees
Type
Projects
Status
Done