フューチャー技術ブログ

サービス間通信とIDL(インタフェース記述言語)連載を始めます

はじめに

IDLやエコシステム、サービス間の通信(何かしらのRPC関連の技術)をテーマにした連載を始めます。

IDL(インターフェース記述言語: Interface Definition Language)と聞けばWSDL(SOAP)であったりJSON-RPCなどを思い出す人も多いかと思いますが、2022年時点で新規に技術選定するのであれば、よく選ばれるのは次のプロダクト群でしょう。

  • GraphQL
  • Protocol Buffers(gRPC)
  • OpenAPI Specification

それぞれ長所・短所があるかと思いますが、それぞれエコシステムも成長も伴いどんどん使い勝手が上がっているように思えます。こういったIDLでスキーマを定義し、それを駆動にしてコミュニケーションの齟齬をなくしたり、コードやドキュメントを自動生成させるなどで、開発生産性を高めることも当たり前に行われつつあるように感じます。特に複数のチームで連携する必要があったり、本番稼働後にそれなりの期間において、ドキュメントの陳腐化させずメンテナンスをするという観点で、開発フローを自動化しやすいIDLがあると便利でしょう。

一方で、さきほど紹介した3つの仕様を含むめた、複数IDL全部に詳しい人!という方は貴重な気がします。というのも、チームで複数のIDLを準備することは通常あまりせず、したとしてもメインで用いるIDLは決めていると思うからです(複数をバッチリ使っているよという方がいれば、ぜひお話を伺いたいです!)。

今回、こういったIDLやエコシステム、サービス間の通信(何かしらのRPC関連の技術)をテーマにした連載を始めますが、この機会に普段の業務利用だと触れる機会を少しでも提供できればなと考えています。

日付 執筆者 タイトル
6/22 真野隼記 Open API Specification v3.1
6/23 澁川喜規 gRPCのGo実装の新星、Connect
6/24 関靖秀 gPRC gateway
6/30 原木翔 スキーマのバージョン管理
7/1 武田大輝 Open API Specification 規約

武田さんはこの連載の直前にアポを取ったら、快く引き受けてくれたこともあり、公開時期はすこしズレる予定です。

最後に

フューチャーだと Open API Specification の利用が多いですが、部分的にgRPCやまれにGraphQLの採用もあるようです。個人的にはGraphQLのこの記事を書いたことがあり、採用事例が増えると良いなと思っています(中々導入の機会が無いですね)。

Open API Specficationは利用頻度が多いので、引き続き業務的な知見を自分が得たり、周囲のチームを見つけたらブログ化を勧めたいと思いますので、暖かく見守っていただけると幸いです!

Clker-Free-Vector-ImagesによるPixabayからの画像