Participants v2 참가 / 취소 변경사항 및 Jaeger 설정 적용#58
Conversation
leeuihyun
left a comment
There was a problem hiding this comment.
확인했습니다.
그런데 모니터링 쪽은 따로 다 PR 완료되면 분리해서 V3로 해서 올리는건 어떠신가요?
큰 상관은 없지만 버전을 나눠놨다 보니 명확하게 하는게 낫지 않을까해서 여쭤봅니다
말씀하시는 바가 맞는 것 같은데 처리하려면 시간이 생각보다 좀 걸릴 것 같지만 기능에는 영향이 없어서 일단 그대로 진행하는게 좋을 것 같습니다. |
| eventPublisher.publishEvent(new MeetingEvents.Register(meetingId, userId)); | ||
|
|
||
| // createParticipant 에서는 결제 요청 까지만 진행 | ||
| // createParticipant 에서는 이벤트 발행 까지만 진행 |
There was a problem hiding this comment.
v3에서는 createparticipant에서 currentParticipantsCount만 올려주고
결제에 성공했을 때 결제 성공 이벤트를 받고 참가자 테이블에 추가해주면 어떨까요?
결제 취소 시에는 count를 줄여주도록 하고
결제 실패 시에는 자리 일시 보류 후 자동 타임아웃 보상트랜잭션으로 예약된 count를 줄여주면 될 것 같습니다!
There was a problem hiding this comment.
지금 이 로직이 모임 참가 요청의 시작점 역할을 하는 것처럼 보입니다
그래서 이 시점에서 currentParticipantsCount를 기준으로 정원이 다 찼는지 먼저 검증하고,
참가가 가능하다면 바로 currentParticipantsCount를 증가시킨 뒤 결제 요청을 진행하는 방식이 더 자연스러울 것 같은데 어떨까요?
There was a problem hiding this comment.
문제가 발생하지 않으면 괜찮을 것 같습니다. v3에서 고려해보도록 하겠습니다.
변경사항
MeetingEvent 에 필요한 세부적인 이벤트를 추가했습니다
ParticipationFailed, ParticipationCancelCompleted (환불 이벤트 발생용)
도메인 이벤트 발행 -> 결제 도메인에서 이벤트 구독 -> 결제 진행 -> 결제 결과 이벤트 발행 -> 도메인에서 이벤트 받은 후 후속 처리(추가 이벤트 발행 등) 구조로 생각하고 변경했습니다
변경된 참가 / 취소
참가 :
Register 이벤트 발행 -> 결제처리 -> 결제완료 이벤트 받아서 인원 추가 처리 -> 성공시 Join 이벤트 발행 / 실패시 ParticipationFailed 이벤트 발행
취소 :
인원 감소 처리 후Cancel 이벤트 발행 -> 환불처리 -> 환불처리 이벤트 받아서 ParticipationCancelCompleted 이벤트 발행
그래서 참가의 Register이벤트를 받아서 결제처리, ParticipationFailed 이벤트를 받아서 환불처리,
취소의 Cancel 이벤트 받아서 환불처리 부분이 결제 도메인에서 필요하다고 보고 있습니다.
Jaeger 설정
설정을 그대로 적용하였고, 기존과 같이 실행 가능할 것으로 보입니다.
사용하신다고 한다면 의존성 변경을 적용하시고 터미널에서 docker compose up -d 해서 container를 실행시킨 후 localhost:16686 (Jaeger UI)를 들어가서 Find Trace를 누르면 API의 Trace 지표를 확인할 수 있습니다.
변경 후 오류가 발생한다면 말씀해주세요