Skip to content

Latest commit

 

History

History
21 lines (16 loc) · 1.57 KB

Chapter1.md

File metadata and controls

21 lines (16 loc) · 1.57 KB

질문

근우

  • 모놀리식 서비스를 많이 개발하고, 운영도 조금 해봤을 것 같은데, 실제로 이 Chatper 를 읽고 공감가는 내용이 있었는지? 또, 문제라고 인식되는 부분이나 불편했던 점이 있었는지 궁금쓰

이슬

  • 분산 트랜잭션을 사용하지 않는다면 어떻게 데이터 일관성을 보장할 것인가?

창현

  • 마이크로 아키텍처 서비스의 경우 각 컴포넌트마다 별도의 DB를 사용하는 것인지?
  • 마이크로 아키텍처 서비스에서의 트랜잭션은 필수적이지 않은건가?
  • 분산 트랜잭션을 적용하는 방법

실습문제

결제 서비스는 데이터 일관성이 절대 틀어지면 안되는 서비스이다. PG사와 통신을 하며 실질적인 결제 서비스를 하는 PaymentServer 가 있다. 또한 회계처리를 위한 별도의 정산 서버인 Ledger 서버도 존재한다. 사용자의 결제 요청이 오면, PaymentServer 는 PSP 에 결제 동기요청을 보내고, 이에 대한 응답을 PaymentServer DB에 저장하고, 사용자에게 전달한다. 이때 정산 서버에 거래내역을 저장하는 것은 실시간성이 필요없어, 카프카를 통한 메세징 방식으로 처리하려고 한다.

위 방식에서 결제 응답 결과와 정산 결과의 데이터 일관성을 보장할 수 있도록 설계해보자.

  • hint : 요청에 대한 응답을 정상적으로 받고, 메세지 전송을 성공해도 해당 트랜잭션이 롤백된다면 각각의 서버의 DB 상태는 어떻게 될까.
  • 답: 아웃박스 패턴