BullMQ로 알림 시스템 운영하기
·
NestJS
들어가며알림톡, 이메일, 푸시처럼 사용자에게 메시지를 보내는 기능은 어느 서비스에나 있다. 그런데 알림 발송을 단순한 HTTP 호출로 구현하다 보면 금세 한계에 부딪힌다.여러 도메인에서 동일한 외부 API를 호출한다. API 서버, 어드민, 배치까지 발송 경로가 흩어진다.외부 API는 rate limit이 있다. 외부 API의 "5초당 100건" 같은 제약을 어디선가 강제해야 한다.즉시 발송이 아닌 경우가 많다. "인증 후 D+1에 안내", "결제 실패 시 3일 뒤 재안내" 같은 시점 분기가 필요하다. 그러나 상태값으로 확인하기 어려운 요구사항도 있다 — 어드민이 특정 사용자에게 특정 시점에 거는 일회성 예약처럼, 도메인 모델에 자연스럽게 매핑되지 않는 경우다.벌크 발송은 실패 케이스가 항상 일부 발생한..