高架橋、5年後:データ指向サービスメッシュの近代化
Airbnbのデータ指向サービスメッシュである「Viaduct」が、オープンソース化されました。5年以上にわたり、AirbnbでのViaductの利用は著しく成長し、トラフィックは8倍に増加し、チーム数は2倍になりました。Viaductは、中心的なスキーマ、ホストされたビジネスロジック、および再入可能性という3つの主要な原則に基づいて開発が続けられています。中心的なスキーマは、会社全体のデータを統合し、Viaductを主要なデータメッシュとしています。サーバーレスプラットフォームによって実現された、ビジネスロジックをViaduct内で直接ホストすることで、開発者の運用を簡素化しています。再入可能性により、ホストされたロジックはGraphQLフラグメントとクエリを介して他のロジックと組み合わせることができ、モジュール性を維持しています。最近の刷新である「Viaduct Modern」は、開発者向けのTenant APIをnodeとfieldの2種類のリゾルバに簡素化することで、過去の複雑さに対処しています。この近代化はまた、テナントモジュール性を導入し、「テナントモジュール」を単一のチームが所有し、GraphQLを介して構成されるスキーマとコードの単位として正式化しました。フレームワークのモジュール性も改善され、GraphQL実行エンジン、Tenant API、およびホストされたコード間のより強力な抽象化境界が作成されました。新しいエンジンAPIは動的型付けであり、Tenant APIは静的型付けであるため、独立した進化が可能です。Viaductは、ClassicとModernの両方のTenant APIを新しいエンジン上で同時に実行することにより、段階的な移行を提供します。その他の改善点としては、可観測性の向上、スキーマファースト開発と直接バイトコード生成によるビルド時間の短縮、Kubernetesのスケーリングと影響範囲の軽減のためのディスパッチャなどがあります。Airbnbは、コミュニティからの貢献の恩恵を受けるためにViaductをオープンソース化し、大規模なGraphQLプロジェクトと、まだ発展途上のGraphQLプロジェクトの両方にとって価値があると考えています。Modern APIは現在アルファ版ですが、新しいエンジンは完全に本番環境で稼働しています。