Skip to content

대기열 시스템 설계 #72

Closed
Closed
@junha-ahn

Description

@junha-ahn

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

No one assigned

    Labels

    documentationImprovements or additions to documentationmajorMajor topic

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions