Open kor-Chipmunk opened 6 months ago
알람 서버를 구축합니다. 이벤트가 발행되면 발행 내역을 저장하고, 발행 타입에 따라 저장소, 메일로 보냅니다. 알람 성공 여부에 따라 발행 내역에 저장합니다. 알람이 실패하면 DLQ에 적재되어 재시도합니다.
자체 알람 서버를 분리합니다. 유저에게 알람 전송 시 알림 내역에 적재되도록 합니다. 음원 업로드 처리 완료시 메일로 보내주도록 합니다.
유저 서버와 의존성을 줄이기 위해 원본 내용을 받아 처리하도록 함. 유저 서버와 통신이 되지 않더라도 알림을 보낼 수 있도록 구축
통합으로 이벤트를 타입별로 처리할 수 있지만, 기능별 장애가 전파되지 않도록 모듈을 분리했습니다. 기존 코드에 영향이 가지 않고 기능 확장이 수월하도록 모듈로 분리했습니다.
이벤트 처리 모듈은 이벤트 저장 내역에 저장하고 각 RabbitMQ 채널에 전파합니다. (즉시 보내기 기준)
실제 알림을 처리합니다.
적재 및 전송에 실패하면 DLQ 에 적재합니다.
설정된 Retry 횟수 (계획상 3회) 만큼 처리하고 실패한다면 알림 내역에 '실패' 로 저장합니다.
No response
.
요약 (Summary)
알람 서버를 구축합니다. 이벤트가 발행되면 발행 내역을 저장하고, 발행 타입에 따라 저장소, 메일로 보냅니다. 알람 성공 여부에 따라 발행 내역에 저장합니다. 알람이 실패하면 DLQ에 적재되어 재시도합니다.
배경 (Background)
자체 알람 서버를 분리합니다. 유저에게 알람 전송 시 알림 내역에 적재되도록 합니다. 음원 업로드 처리 완료시 메일로 보내주도록 합니다.
목표 (Goals)
목표가 아닌 것 (Non-Goals)
계획 (Plan)
1. 알람 이벤트 정의
유저 서버와 의존성을 줄이기 위해 원본 내용을 받아 처리하도록 함.
유저 서버와 통신이 되지 않더라도 알림을 보낼 수 있도록 구축
2. 카프카 이벤트 수신 모듈 개발
통합으로 이벤트를 타입별로 처리할 수 있지만, 기능별 장애가 전파되지 않도록 모듈을 분리했습니다.
기존 코드에 영향이 가지 않고 기능 확장이 수월하도록 모듈로 분리했습니다.
이벤트 처리 모듈은 이벤트 저장 내역에 저장하고 각 RabbitMQ 채널에 전파합니다. (즉시 보내기 기준)
3. RabbitMQ 수신 모듈 개발
실제 알림을 처리합니다.
적재 및 전송에 실패하면 DLQ 에 적재합니다.
4. RabbitMQ DLQ 처리
설정된 Retry 횟수 (계획상 3회) 만큼 처리하고 실패한다면 알림 내역에 '실패' 로 저장합니다.
이외 고려 사항들 (Other Considerations)
No response
마일스톤 (Milestones)
.