Stripe가 2023년 블랙 프라이데이·사이버 먼데이(BFCM) 기간에 실시간 비즈니스 지표를 공개하는 마이크로사이트를 19일 만에 구축했다. Next.js와 Vercel을 기반으로, 초당 수만 건의 트랜잭션을 처리하면서도 99.999% 이상의 API 가동률을 유지했다.
핵심 포인트- BFCM 2023 동안 최대 분당 93,304건 트랜잭션을 처리하며 99.999%+ API 가동률을 달성했다.
- WebSocket 클라이언트 연결 방식을 포기하고 백엔드 캐시 폴링 + SWR + ISR 세 레이어 조합을 선택했다.
- getStaticProps(빌드 타임 프리페치) + SWR(클라이언트 실시간) + ISR(엣지 자동 재검증)을 계층적으로 구성했다.
- 캐시 최대 유효 시간을 1초로 설정해 백엔드 쿼리를 최소화하면서 거의 실시간에 가까운 데이터를 제공했다.
- 마이크로사이트 데이터 소스를 핵심 Stripe 인프라와 완전히 격리해 장애 전파 위험을 차단했다.
- 구상부터 배포까지 19일이라는 빠른 일정은 프레임워크 정의 인프라를 활용한 덕분에 가능했다.
상세 정리- 배경: Stripe는 BFCM 2023에 트랜잭션 볼륨·신뢰성 데이터·글로벌 활동을 외부에 실시간으로 공개하기로 결정했다. 전례 없는 투명성 이니셔티브였다.
- 첫 번째 시도(폐기): 클라이언트별 WebSocket 연결을 검토했지만, 19일 일정과 예상 트래픽 규모 때문에 포기하고 더 간단한 폴링 방식으로 전환했다.
- getStaticProps 활용: 빌드 타임에 필수 데이터를 프리페치해 초기 페이지 로드 성능을 최적화했다. 사용자는 즉시 데이터가 채워진 화면을 본다.
- SWR(Stale-While-Revalidate): 클라이언트에서 현재 데이터를 표시하면서 백그라운드에서 재검증을 트리거한다. 백엔드 과부하 없이 반응성을 유지하는 핵심 레이어다.
- ISR: 엣지 네트워크 전역에서 콘텐츠를 자동으로 재검증한다. 캐시 최대 유효 시간 1초로 설정해 최신성과 성능을 동시에 달성했다.
- 격리 전략: 마이크로사이트 데이터 소스를 Stripe 핵심 인프라와 API 수준에서 완전히 분리했다. 사이트 장애가 결제 시스템에 전파되지 않는 구조다.
- 폴백 계획: 공개된 적 없는 실시간 지표를 처음 노출하는 실험적 성격을 인식하고, 지표 실패 감지 및 대응 전략을 사전에 수립했다.
- 결과: 186억 달러 이상의 트랜잭션을 처리하는 동안 사이트는 무중단으로 운영됐고, 팀원은 "Vercel 없이는 19일 안에 불가능했다"고 밝혔다.
왜 읽나대규모 트래픽 피크를 대비한 실시간 데이터 공개 시스템의 아키텍처 결정 과정(SWR+ISR+캐시 폴링 조합 및 핵심 인프라 격리 전략)을 실제 사례로 배우고 싶은 백엔드·프론트엔드 엔지니어에게 유용하다.