NEST · KAFKA

알림 서비스는 이벤트를 받아 채널 발송만 담당한다

주문·결제 서비스가 이벤트를 발행하고, Kafka 토픽과 consumer group이 알림 처리 책임을 분리한다.

Domain event OrderPaid, UserCreated 같은 비즈니스 사건 생성
Topic 이벤트 이름과 payload version을 고정해 발행
Notification consumer 메일·푸시·SMS 발송을 consumer group 단위로 처리
멱등성

같은 eventId가 다시 와도 한 번만 발송한다.

재시도

일시 실패는 retry, 영구 실패는 DLQ로 보낸다.

순서

주문·사용자 기준 partition key를 정한다.

관측

lag, 실패율, 처리 시간을 같은 correlation id로 본다.

핵심: HTTP 요청 경로와 알림 발송 경로를 분리하되, 재처리해도 같은 결과로 수렴해야 한다.