플레어레인은 연간 100억 건이 넘는 메시지를 보냅니다. 활성 유저는 2억 명이 넘고 이벤트 호출은 분당 100만 건이 넘습니다. 캠페인 한 번에 수백만 건이 나가는 날도 드물지 않습니다.
발송이 실제로 어떻게 흘러가는지 먼저 한 장으로 보면 아래와 같습니다. 위쪽은 메시지가 나가는 발송 경로, 아래쪽은 그 발송 대상을 실시간으로 갱신하는 데이터 경로입니다.
수백만 건 동시 발송과 속도 조절
한 번에 수백만 명으로 발송이 나가면 부담은 두 곳에서 생깁니다. 푸시를 누른 유저가 동시에 앱으로 들어오면서 트래픽이 고객사 서버로 몰립니다. 또 푸시, 문자, 카카오를 받는 외부 채널에도 각자의 처리 한계가 있습니다. 규모가 작을 때는 보이지 않던 문제가 숫자가 커지면 한꺼번에 드러납니다.
속도를 조절하는 방식은 단순합니다. 플레어레인은 발송 요청을 곧바로 내보내지 않고 메시지 큐(queue)에 먼저 쌓아 둡니다. 그다음 큐에서 메시지를 꺼내는 속도를 설정값으로 제한합니다. 갑자기 들어온 수백만 건은 큐가 흡수합니다. 실제 발송은 고객사 서버와 외부 채널이 감당할 수 있는 속도로 나갑니다. 고객사는 분당 몇 건까지 보낼지 콘솔에서 정하기만 하면 됩니다. 큐나 속도 제한 로직을 직접 만들 필요는 없습니다.
큐에 쌓인 메시지는 서버리스(serverless) 구조에서 처리합니다. 미리 켜 둔 고정 서버가 아니라, 큐에 들어온 양에 맞춰 처리 작업 수가 자동으로 늘고 줄어듭니다. 발송량이 평소의 수십 배로 튀면 동시에 처리하는 작업이 그만큼 늘어납니다. 발송이 끝나면 다시 줄어듭니다. 그래서 고객사가 서버를 늘리거나 별도 구조를 마련할 필요가 없습니다. 갑작스러운 발송 폭증도 밀리지 않고 나갑니다.

외부 채널에 장애가 날 때
규모가 커지면 외부 채널이 일시적으로 느려지거나 오류를 내는 일이 자주 생깁니다. 한 채널의 응답이 느려졌다고 전체 발송이 밀리면 안 됩니다. 그래서 플레어레인은 채널마다 서킷 브레이커(circuit breaker)를 둡니다. 특정 채널의 오류가 일정 수준을 넘으면 그 경로를 잠시 차단했다가, 다시 정상으로 돌아오면 자동으로 연결합니다. 발송 사업자가 여럿인 문자나 카카오는 한 사업자에 장애가 나면 라우팅 단계에서 다른 사업자로 우회합니다.
전송에 실패한 메시지는 버리지 않고 다시 시도합니다. 단순히 재시도만 하면 같은 메시지가 두 번 나갈 수 있습니다. 그래서 메시지마다 고유 키를 붙여 멱등(idempotent) 처리합니다. 이미 보낸 키가 다시 들어오면 그 건은 건너뜁니다. 덕분에 재시도를 해도 같은 알림이 두 번 가지 않고 가야 할 알림이 빠지지도 않습니다.
이런 장치는 평소에는 드러나지 않습니다. 외부 채널 한 곳에 장애가 나도 전체 캠페인은 멈추지 않습니다. 그 채널만 잠시 건너뜁니다.
분당 100만 이벤트, 실시간 반영
2억 명이 넘는 유저를 다루려면 그만큼의 푸시 토큰과 행동 데이터를 관리해야 합니다. 토큰은 만료되고 기기는 바뀌고 구독은 해지됩니다. 플레어레인은 이런 변화를 변경 데이터 캡처(CDC) 방식으로 잡아내, 조회용 인덱스에 곧바로 반영합니다. 그래서 세그먼트를 만들 때 이미 사라진 토큰을 걸러낸 상태로 대상을 추립니다. 고객사가 이 데이터를 직접 쌓고 관리하려면 적지 않은 비용과 인력이 듭니다.
분당 100만 건이 넘는 이벤트도 마찬가지입니다. 유저가 무엇을 보고 무엇을 샀는지가 실시간으로 들어옵니다. 플레어레인은 이 이벤트를 한참 모아 두었다가 한꺼번에 다루는 배치 방식 대신, 스트리밍 파이프라인으로 도착하는 즉시 처리합니다. 유저가 방금 한 행동이 다음 발송 조건에 거의 곧바로 반영됩니다. 행동에 맞춘 메시지를 제때 내보내려면 이 처리 속도가 뒷받침돼야 합니다.
작은 팀에도 필요한 안정성
큰 숫자는 규모가 큰 고객사에만 해당한다고 느껴질 수 있습니다. 하지만 큐 기반 속도 조절, 서킷 브레이커, 멱등 재시도, 실시간 집계는 캠페인 규모와 상관없이 똑같이 작동합니다. 수백만 건을 견디도록 만든 구조 위에서는 수천 건짜리 캠페인의 성과도 늦지 않게 집계됩니다.

발송 규모가 빠르게 늘고 있다면, 지금 구조가 그 규모를 안정적으로 감당할 수 있는지 미리 가늠해 두는 편이 안전합니다. 아래에서 현재 발송 규모와 트래픽을 기준으로 점검을 신청할 수 있습니다.
