더북(TheBook)

대책: 버전 파일

버전 파일(version file)은 레코드에 수행한 작업을 하나하나 기록하는 대책입니다. 즉, 비교환적(noncommutative) 작업을 교환적(commutative) 작업으로 변환하는 방법입니다. 가령 주문 생성 사가와 주문 취소 사가가 동시 실행된다고 합시다. 시맨틱 락 대책을 쓰지 않으면 주문 생성 사가가 소비자 신용카드를 승인하기 전에 주문 취소 사가가 해당 신용카드를 승인 취소하는 말도 안 되는 상황이 벌어질 수 있습니다.

순서가 안 맞는 요청을 회계 서비스가 받아 처리하려면, 작업이 도착하면 기록해 두었다가 정확한 순서대로 실행하면 됩니다. 방금 전 경우라면, 회계 서비스는 일단 승인 취소 요청을 기록하고 나중에 신용카드 승인 요청이 도착하면 이미 승인 취소 요청이 접수된 상태이니 승인 작업은 생략해도 되겠구나라고 인지하는 것입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.