주문 접수 알림의 기존 MQTT 구조가 legacy client의 payload 제한, topic 권한 부재, 전용 port 차단, WebView 인증서 관리 문제를 안고 있었던 데서 출발한다. AWS IoT로 인증·payload를 개선하고 Server-Sent Events로 웹 친화적 단방향 전달 경로를 세우며 하루 4천만 건을 안정화한 과정을 따라간다.
핵심 포인트- 기존 MQTT는 zero payload라 client가 API 재조회로 상태를 비교해야 했고, topic 권한 부재로 타 partner topic 구독이 가능했으며 전용 port 차단·WebView 인증서 관리 문제까지 겹침
- AWS IoT의 X.509 인증서·topic 권한으로 보안을 강화하고 정형 payload에 문구·event type·sound type을 실어 client update 없이 알림을 제어, 남은 port·WebView 문제는 HTTP 단방향 SSE로 해결(WebSocket은 과도하다 판단)
- 모든 server가 broker event를 받고 실제 session을 가진 node만 전달하는 broadcast 구조로 순서 보장·scale-out 단순성을 확보하고, Last-Event-ID 재전송·commit URL 수신 기록·활성 session 단일 검증으로 신뢰성과 보안을 보강
- buffer 0·suspend coroutine channel의 Kafka 정체는 capacity·overflow 정책으로, 배포 후 동시 재접속 CPU spike는 session 유지시간·reconnect jitter로 해결하고 capability에 맞는 event만 보내 I/O 절감
왜 읽나실시간 알림 전송 구조를 MQTT에서 웹 친화적으로 전환하려는 백엔드 개발자에게 SSE broadcast 설계와 재연결·backpressure 운영 함정을 담은 대용량 실전기.