주문이벤트 발행에서 이벤트 발행을 동기적으로 처리하는 이유
110
작성한 질문수 4
안녕하세요, placeOrder 메서드의 TransactionSynchronization 구현 부분에 대해 질문드립니다!
afterCommit() 내부에서 Kafka 전송을 동기적으로 처리하고 계신데, 이벤트 발행 안정성을 위한 의도적인 설계인지 궁금합니다!
비동기로 처리하면 API 응답은 빨라지지만 전송 실패 처리가 복잡해진다고 생각하는데, Outbox Pattern 같은 메시지 전송 보장 메커니즘을 적용하지 않은 상태에서 안정성을 위해 동기 처리를 선택하신 걸까요?
현업에서는 어떤 방법을 선호하는지도 궁금합니다!
좋은 강의 감사합니다.
답변 1
0
발그레지는개발님 안녕하세요!
2가지로 나누어볼 수 있을것 같아요.
afterCommit 에서 처리를 한 이유
DB 의 트랜잭션과 분리하여 이벤트는 발행되고 DB 는 롤백되는 상황을 막기 위함입니다.
동기로 발송한 이유
kafka 에 이벤트를 발행하는것은 소요시간이 그리크지 않은 작업으로 비동기로 할 이유가 없었기때문에 동기적으로 처리하였습니다.
전송 실패처리
이것은 동기, 비동기 상관없이 잘 처리가 되어야 할 것 같습니다.
말씀하신대로 전송 보장이 되어야 한다면 outbox pattern 을 활용하여 처리할 수 있을 것 같습니다.
추가적인 질문이 있으시다면 말씀해주세요!
유비쿼터스 언어와 class name
0
43
1
장애 격리 관련해서 궁금한 부분이 있어요
0
55
2
4. ArgoCD설치---Base64 디코딩 부분만 PowerShell 방식으로 바꾸어서 설치 필요
0
57
1
강의 기다리고 있습니다!
0
53
0
9월 8일 세션 진행한 거는 없었을까요
0
78
1
미션1 진행방법 관련
1
81
1
개인 git에 코드를 올려도 될지 문의드립니다.
0
70
2
configserver 설정에러
0
73
2
Inner class로 Config를 지정하는 이유
0
62
2
혹시 강의 내용하면서 실습했던 것을 개인 깃에다 올려도 될까요?
0
60
1
시퀀스다이어그램은 무슨툴로 그리신건가요?
0
87
2
유저 이미지 등록 에러
0
71
1
service-discovery 프로세스 가동 이유
0
84
2
보상트랜잭션 실패시 데이터베이스 저장하는데 그것조차 실패하면 어떻게 하나요??
0
91
2
spring-retry가 spring-core 패키지로 편입되었습니다.
2
190
1
TCC 주문 도중 문제 발생 시 상태 해소 전략 관련 질문입니다.
0
149
1
TCC PointService tryReserve 구현 관련 질문입니다.
0
126
2
[TCC 구현하기(2) - 동시성문제 해결하기] 질문
0
159
2
안녕하세요 강사님 질문있습니다.!!
0
158
2
테스트 코드
0
132
2
Optimistic Lock 사용이유
0
142
2
노트에 노션페이지 공유가 없습니다.
0
128
2
예시 코드 질문 드립니다
0
175
3
안녕하세요. Orchestration SAGA패턴 질문있습니다.
1
173
2





