inflearn logo
강의

講義

知識共有

カカオの面接官が教えるMSAの観点からの分散トランザクションパターン

損失が許容される最後のアプリケーションおよびテスト

입금 성공 후 계좌 잔고 증가 로직 구현 방법 문의

解決済みの質問

105

hororok

投稿した質問数 1

0

강의를 보고 궁금한 점이 생겨서 질문드립니다.

강의에서 구현된 송금 프로세스를 분석해보니,

출금은 정상적으로 잔고가 차감되지만 입금 시 받는 계좌의 잔고를 증가시키는 로직이 없는 것 같습니다.

예를 들어:

- Choreography 방식: handleDepositSuccess() 메서드에서 SagaState만 COMPLETED로 업데이트

- Orchestration 방식: Transaction Service에서 deposit 기록만 생성

현재와 같이 데이터베이스가 서비스별로 분리된 상황에서,

입금 성공 후 받는 계좌의 잔고를 증가시키는 로직을 어떻게 구현해야 하는지 궁금합니다.

제가 생각한 방법은:

1. Orchestration 방식: Transaction Service의 REST 응답이 성공하면,

Account Service에서 받는 계좌의 잔고를 증가시킴

2. Choreography 방식: Transaction Service에서 deposit.success 이벤트를 발행하면,

Account Service에서 이벤트를 consume하여 받는 계좌의 잔고를 증가시킴

이 두 가지 방식으로 접근하는 것이 맞는지,

아니면 다른 권장 방법이 있는지 알려주시면 감사하겠습니다.

java spring mysql spring-boot msa

回答 1

0

Hong

안녕하세요 호로록님 제가 이벤트를 일부 뺴먹었나 보네요 ㅠㅠ 죄송합니다.

 

생각하시는 방향이 맞습니다. 우선 오케스트레이션 방식은 내가 동기적으로 볼 수 있기 떄문에 단순히 값을 추가해주시면 될 것이고

 

코레오그래피 패턴에서는 최종적으로 처리하는 이벤트 즉 예를들면 결제 성공 이벤트도 최초 계좌의 잔액을 담당하는 서비스가 소비를 하면서 계좌의 잔액을 처리하시면 됩니다.

 

생각하시는 방향이 틀리지는 않은거 같아요. 감사합니다!

usecase 사용 기준

0

3

0

실습용 테이블, 데이터 생성 파일 있을까요?

1

9

2

android crud중 c 영상이 12초만 있는 잘린 영상이에요.

0

17

2

강사님.. 하단 URL에 있었던 코드들 다운 받거나 공유 부탁 드립니다..

0

15

2

섹션3. 11 회원객체 다이어그램

0

18

1

OCP, DIP과 @Qualifier 어노테이션에 대해서 질문합니다.

0

19

1

강의 연장 요청

0

19

2

노션 접근권

0

20

1

설정 정보 없이 임베디드 데이터베이스 생성

0

15

1

@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.

0

19

1

형 이번에 낸 책이랑 강의 내용에 차이가 있어?

1

36

1

형 나 몰래 책내면 모를 줄 알고?

1

30

1

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

21

1

IN 사용방법 문의

0

17

1

Orchestration SAGA 패턴 보상에 대한 질문입니다.

0

54

2

23강 예제 질문입니다! (서비스 1 > 2 > 3 호출 시나리오 관련)

0

65

2

강의 11 질문

1

67

2

강의 첨부파일 문의

0

63

1

Orchestration 방식의 모듈 구성에 관한 질문

0

98

2

Orchestration 패턴시 트랜잭션 분리

0

95

2

common 모듈의 필요성과 다른 방법에 대한 문의

0

89

1

주식거래와 같은 실시간 보장이 필요한 상황에서 SAGA 패턴 도입에 대한 문의

0

96

2

사가 패턴 질문

0

97

2

코레오그래피 방식으로 SAGA 패턴을 구성할때 메시지 설계는 어떤식으로 해야하는지 궁금합니다

0

122

1