[스타트업/기술] 알림함 아키텍처: Fan-out on Write vs Fan-out on Read | 비용을 '구독자 수'가 아닌 '활성 유저 수'에 비례시키기
문제 토픽 브로드캐스트를 서버가 받은함에 펼치면 발송 1건의 Firestore 쓰기가 구독자 수만큼 늘어난다. 게다가 순수 토픽은 서버가 구독자가 누구인지조차 모른다. 결정 서버가 수신자를 uid로 풀 수 있는 발송(uid 지정, 세그먼트, 동의 기반 토픽)은 쓰기 시점에 서버가 펼치고, 풀 수 없는 순수 브로드캐스트( lang-* )만 앱이 열릴 때 클라이언트가 채운다. 대가 멱등성, 동의 재검증, 커서 관리를 클라이언트가 직접 …