주문이벤트 발행에서 이벤트 발행을 동기적으로 처리하는 이유
47
4 asked
안녕하세요, placeOrder 메서드의 TransactionSynchronization 구현 부분에 대해 질문드립니다!
afterCommit() 내부에서 Kafka 전송을 동기적으로 처리하고 계신데, 이벤트 발행 안정성을 위한 의도적인 설계인지 궁금합니다!
비동기로 처리하면 API 응답은 빨라지지만 전송 실패 처리가 복잡해진다고 생각하는데, Outbox Pattern 같은 메시지 전송 보장 메커니즘을 적용하지 않은 상태에서 안정성을 위해 동기 처리를 선택하신 걸까요?
현업에서는 어떤 방법을 선호하는지도 궁금합니다!
좋은 강의 감사합니다.
Answer 1
0
발그레지는개발님 안녕하세요!
2가지로 나누어볼 수 있을것 같아요.
afterCommit 에서 처리를 한 이유
DB 의 트랜잭션과 분리하여 이벤트는 발행되고 DB 는 롤백되는 상황을 막기 위함입니다.
동기로 발송한 이유
kafka 에 이벤트를 발행하는것은 소요시간이 그리크지 않은 작업으로 비동기로 할 이유가 없었기때문에 동기적으로 처리하였습니다.
전송 실패처리
이것은 동기, 비동기 상관없이 잘 처리가 되어야 할 것 같습니다.
말씀하신대로 전송 보장이 되어야 한다면 outbox pattern 을 활용하여 처리할 수 있을 것 같습니다.
추가적인 질문이 있으시다면 말씀해주세요!
user-service jwt
0
32
2
애그리거트 질문있습니다!
0
31
2
DDD 는 마이바티스와 잘 맞지 않는건가요?
0
46
1
스프링부트 버전 문의드립니다.
0
38
1
gRPC 실무에서 질문
0
35
2
Orchestration SAGA 패턴 보상에 대한 질문입니다.
0
51
2
6강 - 해시태그 모델의 샤딩 전략에 대하여, 분산 정도(데이터 편중)와 트랜잭션 성능의 trade off 상황 발생 시에 대한 고민
0
40
2
2. Kafka 설치 파일 다운받기 404 Not Found 오류 관련
0
59
2
실습을 가상환경에서 해도 따라하는데 지장이 없나요?
0
57
2
쿠버네티스 학습
0
57
1
UserSignedUpEventConsumer 에서 로그 DB 저장 문의
0
51
2
프로젝트 환경세팅 파일 왜 안보일까요...
0
38
2
MSA에서 서비스별 DB 작성에 관해
0
81
2
Microservice 에 DB 띄우기
0
62
2
spring-retry가 spring-core 패키지로 편입되었습니다.
2
106
1
TCC 주문 도중 문제 발생 시 상태 해소 전략 관련 질문입니다.
0
60
1
TCC PointService tryReserve 구현 관련 질문입니다.
0
54
2
[TCC 구현하기(2) - 동시성문제 해결하기] 질문
0
79
2
안녕하세요 강사님 질문있습니다.!!
0
78
2
테스트 코드
0
71
2
Optimistic Lock 사용이유
0
71
2
노트에 노션페이지 공유가 없습니다.
0
73
2
예시 코드 질문 드립니다
0
105
3
안녕하세요. Orchestration SAGA패턴 질문있습니다.
0
110
2

