
서버 분산 대신 모듈 분산을 선택한 에어비앤비만의 독특한 GraphQL 확장 전략
에어비앤비가 수년간 내부 데이터 인프라를 지탱해온 Viaduct를 오픈소스 1.0으로 전환하며 커뮤니티 주도 프로젝트로 선언했습니다. 페더레이션과 유사하면서도 다른 '모듈형 멀티테넌시' 접근법을 통해 대규모 엔지니어링 조직이 어떻게 단일 그래프를 효율적으로 구축하는지 보여줍니다.
중앙 집중식 API 게이트웨이 관리에 어려움을 겪고 있거나, 마이크로서비스 확장에 따른 그래프 관리 비용을 절감하고 싶은 플랫폼 엔지니어링 팀에게 강력히 추천합니다.
대규모 조직에서 중앙 집중식 GraphQL 스키마를 운영할 때, 모든 도메인을 중앙 팀이 관리하기 어려워지며 각 팀의 자율적인 기여와 안정적인 거버넌스 사이의 균형이 무너지는 문제가 발생합니다.
에어비앤비는 서버 단위가 아닌 모듈 단위로 개발을 분산하는 멀티테넌트 런타임 'Viaduct'를 도입하여, 각 팀이 인프라 설정 없이 SDL과 리졸버만으로 공유 그래프에 기여할 수 있게 했습니다.
Viaduct 1.0 출시를 통해 안정적인 공개 API와 Kotlin 바이너리 호환성을 확보했으며, 수백 개의 팀이 독립적으로 기여하면서도 통합된 데이터 인터페이스를 유지할 수 있는 성숙한 커뮤니티 프로젝트로 진화했습니다.
Trade-off
공유 런타임 방식을 채택함에 따라 개별 모듈의 장애가 전체로 확산될 위험이 있으나, 이를 방지하기 위해 샤딩 기술과 확률적 테스트(Probabilistic testing)를 통한 격리 및 검증 비용을 감수하고 있습니다.
데이터 소스에 관계없이 모든 데이터 접근과 상호작용을 단일 GraphQL 인터페이스로 추상화하여 제공하는 서비스 메시의 한 형태입니다.
하나의 공유 실행 환경에서 독립적으로 개발 및 테스트된 여러 테넌트 모듈을 동시에 호스팅하는 방식입니다.
여러 개의 독립적인 GraphQL 서브그래프를 하나의 연합된 그래프로 결합하는 아키텍처 스타일입니다.




