사용자, 상품, 수량, 결제 정보를 서비스로 전달합니다.
요청 레인
clientcommit 이후 주문 번호와 결제 기록을 반환합니다.
품절, 결제 기록 실패 등 원인을 사용자 응답으로 매핑합니다.
서비스 트랜잭션 레인
tx같은 manager 또는 tx client로 처리 범위를 엽니다.
상품을 잠그거나 확인한 뒤 수량을 차감합니다.
주문 헤더를 만들고 사용자와 결제 기준 정보를 연결합니다.
주문 항목과 결제 기록까지 저장되어야 성공입니다.
예외가 없으면 확정하고, 예외가 있으면 전체 변경을 취소합니다.
데이터베이스 레인
db차감된 재고는 commit 전까지 트랜잭션 안의 변경입니다.
주문 헤더가 생성되어도 후속 단계 실패 시 남기지 않습니다.
항목과 결제 기록까지 맞아야 데이터 정합성이 유지됩니다.