issues
search
O0oO0Oo
/
netty-reservation-service
트랜잭션, 동시성을 공부하기 위한 토이 프로젝트입니다.
0
stars
0
forks
source link
feat: Integration and optimization of Saga pattern in each service module.
#18
Closed
O0oO0Oo
closed
1 month ago
O0oO0Oo
commented
1 month ago
이슈 개요
각 서비스 모듈에서 사가 패턴 통합과 사가 패턴 구현체 에러 수정, 최적화
재현 단계
[x] 모듈 정리, 재구성
[x] build.gradle 설정 변경
[x] 모듈 재구성
[x] #20
[x] item 생성
[x] reservation 생성, 수정
[x] 사가 패턴을 사용하는 각 서비스의 Protobuf 작성
[x] create reservation
[x] remove reservation - 다음에
[x] register item - 다음에
[x] 카프카 설정
[x] mesaging-adapter 모듈에 구현
[x] 간단한 consumer, producer 구현
[x] processor 구현
[x] consumer [record] -> [record] service logic [result] -> [result] 로 응답 토픽에 produce
[x] 서비스 코드와 사가패턴 통합
[x] 연관관계 매핑 해결
[x] 각 서비스 사가 패턴 응답 로직 작성
[x] SagaPromise 가 모두 완료되었을때 어떻게 완료를 알릴것인지.
[x] SagaDefinitionFactoryImpl : 0번째도 등록 가능하게 변경
[x] 서비스 코드에서 도메인 로직 분리
예상 동작
요청이 오면 Ket Store 를 사용하여 유일성이 보장되는 unique key 를 만든다.
key 를 SagaMessage 담아 각 서비스끼리 kafka, protobuf 를 사용하여 이벤트를 주고 받는다.
각 이벤트는 Exactly once 로 발행, 소비된다.
과정이 모두 끝나면 유저에게 응답을 한다.
실제 동작
요청이 오면 TSID 를 생성하여, 사가를 시작한다.
등록해둔 단계를 진행하며, kafka 를 통해 이벤트를 주고 받는다.
모든 단계가 완료되면 값을 리턴한다.
추가 정보
TSID 키 사용
이슈 개요
각 서비스 모듈에서 사가 패턴 통합과 사가 패턴 구현체 에러 수정, 최적화
재현 단계
예상 동작
실제 동작
추가 정보