더북(TheBook)

주문 생성 사가의 createOrder(), verifyConsumerDetails(), createTicket()은 모두 보상 가능 트랜잭션입니다. createOrder(), createTicket()은 자신의 업데이트를 언두하는 보상 트랜잭션을 갖고 있고, verifyConsumerDetails()는 읽기 전용이라 따로 보상 트랜잭션이 필요 없습니다. 이 사가의 피봇 트랜잭션은 authorizeCreditCard()입니다. 소비자 신용카드가 승인되면 이 사가는 반드시 완료됩니다. approveTicket(), approveOrder()는 피봇 트랜잭션 이후의 재시도 가능 트랜잭션입니다.

보상 가능 트랜잭션과 재시도 가능 트랜잭션의 차이점은 특히 잘 알아 두어야 합니다. 트랜잭션 종류마다 대책에서 하는 역할이 다르기 때문입니다. 마이크로서비스로 전환 시 모놀리스도 사가에 참여해야 하는 경우도 있고, 모놀리스가 재시도 가능 트랜잭션만 실행하면 처리하기가 아주 간단해집니다(13장).

시맨틱 락부터 하나씩 비격리 대책을 알아봅시다.

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