Single-server 천장
FastAPI 프로세스 한 대가 수만 WebSocket connection 들 수 있어, 백만은 못 들어. horizontally scale 하려면 — load balancer 뒤 여러 서버 — 구조적 문제 직면: 같은 room 의 connection 이 다른 서버에 살 수 있어. 서버 A 의 broadcast 가 message bus 공유 안 하면 서버 B 의 user 한테 못 도달.
Redis Pub/Sub 이 표준 답
각 서버가 outgoing message 를 Redis channel 에 publish 하고 같은 channel 에 subscribe. Redis 가 모든 subscriber 한테 fan out. 각 서버가 그 후 local connection 한테만 broadcast. 패턴이 수천 서버 + 수백만 connection 까지 작동, central state 없음.
cwkPippa 의 비슷한 패턴
cwkPippa 는 의도적으로 single-server (집의 Mac Studio). 근데 피파의 Council 패턴 — user 의 한 질문이 여러 brain process 로 fan out 후 응답이 converge — 이 같은 모양. transport 가 다를 뿐 (subprocess pipe, Redis 아님), 'fan out, fan in' 은 분산 real-time 에 universal.