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

이벤트 실패 시 실패한 이벤트를 저장하여 재처리 가능하도록 한다 #117

Open
Ohzzi opened this issue Nov 13, 2022 · 0 comments
Assignees
Labels
restaurant 음식점

Comments

@Ohzzi
Copy link
Collaborator

Ohzzi commented Nov 13, 2022

리뷰 생성 / 수정 / 삭제에 대한 음식점 정보 수정 로직을 비동기 이벤트로 전환하게 됨(#116)에 따라 리뷰에 대한 로직은 성공하지만 음식점에 대한 로직은 실패하는 경우가 발생할 수 있다. 이 경우 데이터의 정합성이 맞지 않게 되므로 데이터의 정합성을 맞추는 처리가 필요하다.

주기적으로 정합성을 맞추는 쿼리를 작성할 수는 있으나, 이 경우 모든 레코드에 대해 수정 쿼리를 실행해야 하므로 시간이 오래 걸리는 것이 부담이 된다. 따라서 실패한 이벤트에 대해서만 다시 재처리 해주는 것이 바람직하다.

이벤트리스너에서 이벤트가 실패할 경우, 데이터베이스에 실패한 이벤트에 대해 저장하고 스케줄러를 통해 주기적으로 실패한 이벤트를 실행하는 로직을 추가하여 정합성 문제를 해결할 수 있다.

이번 이슈에서는 이벤트 실패에 대한 처리 로직은 고려하지 않고, 실패한 이벤트를 어떤 방법으로든 재처리 할 수 있도록 이벤트의 정보를 담아 데이터베이스에 저장해두는 로직을 작성한다. 추후 스케줄러 + 배치를 통해 처리할 수도, 실패 이벤트 리스트를 확인하여 수동으로 데이터베이스를 통해 처리할 수도 있도록 할 수 있다.

@Ohzzi Ohzzi added the restaurant 음식점 label Nov 13, 2022
@Ohzzi Ohzzi self-assigned this Nov 13, 2022
@Ohzzi Ohzzi changed the title 이벤트 실패에 대한 failover 로직을 구현한다 이벤트 실패 시 실패 이벤트를 기록한다 Nov 14, 2022
@Ohzzi Ohzzi changed the title 이벤트 실패 시 실패 이벤트를 기록한다 이벤트 실패 시 실패한 이벤트를 저장하여 재처리 가능하도록 한다 Nov 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
restaurant 음식점
Projects
None yet
Development

No branches or pull requests

1 participant