피드로 돌아가기
Firestore Architecture For Scaling Read-Intensive Multi-Tenant Software
Dev.toDev.to
Database

Flat Collection 기반 설계로 Wide/Deep Scale 비용 91% 절감

Firestore Architecture For Scaling Read-Intensive Multi-Tenant Software

Mxolisi Masuku2026년 4월 25일10intermediate

Context

Multi-tenant SaaS 환경에서 Firestore의 Subcollection 구조 채택 시 발생하는 복잡한 Query 및 과도한 Read 비용 문제를 분석함. 특히 Tenant 규모가 커지는 Deep Scale과 Tenant 수가 증가하는 Wide Scale 상황에서 서로 다른 병목 지점이 발생함을 식별함.

Technical Solution

  • Subcollection 대신 Top-level Collection에 companyId를 포함하는 Flat Layout 구조 설계
  • Collection Group Query 배제로 인한 Composite Index 생성 및 Security Rule 복잡도 최소화
  • 단일 Socket 연결을 통한 onSnapshot 리스너 범위 최적화로 메모리 누수 및 Read 비용 폭증 방지
  • 전역 필터링(where companyId == X) 기반의 단순화된 데이터 마이그레이션 및 일괄 수정 경로 확보
  • Read-intensive 부하 해결을 위한 Daily Rollup 패턴 도입으로 개별 로그 조회 빈도 감소

1. Tenant 1,000개 이상 또는 단일 Tenant 내 차량 50대 이상 예상 시 초기부터 Rollup 패턴 설계

2. Cross-tenant 관리자 쿼리 빈도가 높다면 Subcollection보다 Flat Collection 우선 검토

3. 실시간 리스너(onSnapshot) 사용 시 리스너 개수가 Read 비용에 직결되므로 단일 쿼리 범위로 통합

원문 읽기