주문·결제 서비스가 이벤트를 발행하고, Kafka 토픽과 consumer group이 알림 처리 책임을 분리한다.
Domain event
OrderPaid, UserCreated 같은 비즈니스 사건 생성
→
Topic
이벤트 이름과 payload version을 고정해 발행
→
Notification consumer
메일·푸시·SMS 발송을 consumer group 단위로 처리
멱등성
같은 eventId가 다시 와도 한 번만 발송한다.
재시도
일시 실패는 retry, 영구 실패는 DLQ로 보낸다.
순서
주문·사용자 기준 partition key를 정한다.
관측
lag, 실패율, 처리 시간을 같은 correlation id로 본다.
핵심: HTTP 요청 경로와 알림 발송 경로를 분리하되, 재처리해도 같은 결과로 수렴해야 한다.