더북(TheBook)

대책: 값 다시 읽기

값 다시 읽기(reread value)는 소실된 업데이트를 방지하는 대책입니다. 사가가 레코드를 업데이트하기 전에 값을 다시 읽어 값이 변경되지 않았는지 확인하는 것입니다. 값을 다시 읽었더니 변경되었다면 사가를 중단하고 나중에 재시작합니다. 이 대책은 일종의 낙관적 오프라인 락(Optimistic Offline Lock) 패턴입니다.14

이 대책을 주문 생성 사가에 적용하면 주문이 승인되는 도중 취소되는 불상사를 방지할 수 있습니다. 주문 승인 트랜잭션은 해당 주문이 처음 생성된 이후 이전 사가 단계에서 변경되었는지 체크합니다. 변경되지 않았으면 주문을 승인 처리하고, 주문이 취소되었으면 사가를 멈추고 보상 트랜잭션을 가동합니다.

 

 


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