Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

♻️ 이벤트 구독자에서 발생한 오류를 발행자로 전파시키도록 변경 #563

Open
uwoobeat opened this issue Aug 3, 2024 · 0 comments
Assignees
Labels
♻️ refactor 기능 개선

Comments

@uwoobeat
Copy link
Member

uwoobeat commented Aug 3, 2024

📌 Description

  • 원래 이벤트 기반 아키텍처에서는 구독자에서 발행한 예외를 발행자로 전파시키지 않아야 함 (발행자는 구독자에 대해서 몰라야 하기 때문)
  • 하지만 이를 위해서는 구독자와 발행자의 트랜잭션이 분리되어야 하며, BEFORE_COMMIT 과 같은 이벤트 핸들링이 이루어져서는 안됨
  • 트랜잭션을 분리하면 이벤트 유실이나 이벤트 핸들링 로직이 실패하는 케이스 등에 대한 대응이 되어야 하는데, 현재로서는 kafka나 mq에 대한 도입 예정이 없으므로 여전히 트랜잭션을 하나로 묶는 식으로 처리해야 함 (물론 추후 개선이 필요...)
  • 기존에 구독자에서 발생시킨 예외가 발행자로 전파되지 않도록 try-catch로 감싸거나, 예외가 발생하지 않도록 validation 메서드로 먼저 검사하고 -> 로직을 실행시키도록 했음
  • 이렇게 하면 도메인의 무결성이 깨지게 된다 -> 즉 주문을 취소했는데 멤버가 준회원으로 강등되지 않거나 하는 케이스가 발생할 수 있음
  • 따라서 명시적으로 예외를 발생시키고, 구독자에서 발생된 예외가 발행자로 전파되도록 하여, one-or-nothing이 보장되도록 해야 함
  • 사실 이러한 방식이 이벤트를 반쪽짜리로 사용하는 법이긴 하지만... 일단 이렇게 처리해야 할듯
@uwoobeat uwoobeat added the ♻️ refactor 기능 개선 label Aug 3, 2024
@uwoobeat uwoobeat self-assigned this Aug 3, 2024
@uwoobeat uwoobeat changed the title ♻️ 이벤트 구독자에서 발생한 오류가 발행자까지 전파되지 않도록 개선 ♻️ 이벤트 구독자에서 발생한 오류를 발행자로 전파시키도록 변경 Aug 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
♻️ refactor 기능 개선
Projects
None yet
Development

No branches or pull requests

1 participant