Architecture🛠️ 開発体験(DX)⚡ パフォーマンス・速度

Airbnb

Airbnb、既存のThrift/REST APIとGraphQLを両立させるデータ中心スキーマへ移行

REST / Thrift APIGraphQL(データ中心スキーマ)

サービス指向アーキテクチャの複雑さに対応するため、AirbnbはThrift IDLをコンパイルしてGraphQLスキーマを自動生成する仕組みを構築し、GraphQLとApollo導入で開発速度を向上させた。

課題

サービス指向アーキテクチャで分散したデータをクライアントが効率よく取得できていなかった

アプローチ

既存Thrift IDLからGraphQLスキーマを自動生成し、データ中心スキーマ設計とApolloを導入

効果

フロントエンドチームの開発速度が大きく向上

背景

Airbnbは多数のマイクロサービスにデータが分散するサービス指向アーキテクチャを採用していたが、クライアントが必要なデータを効率よく取得することが難しくなっていた。単純なフィールド単位のスキーマ設計ではクライアントごとに重複したリクエストが発生する問題もあった。

移行のプロセス

Airbnbは既存のThrift IDLをコンパイルしてGraphQLスキーマへ自動変換する仕組みを構築し、そこからTypeScriptの型定義も自動生成した。単純なフィールド単位のスキーマの限界を克服するため、データ中心(data-centric)なスキーマ設計とデータハイドレーション層を組み合わせるアプローチを採用し、GraphQLとApolloクライアントを導入した。

結果

GraphQLとApolloクライアントの導入により、フロントエンドチームの開発速度が大きく向上したとAirbnbのエンジニアリングブログで報告されている。

2018-05-01
他の事例も見る