
ConnectによるgRPCを超えたスキーマ駆動開発(Golang/TypeScript)
BRANK
こんにちは。PortalKeyの植森です。前回、PortalKeyの主要技術に関してざっくりと解説をしました。今回は、その中のひとつであるConnectについて掘り下げていきます。Connectとは? Technologies社が開発したRPCフレームワークです。Protocol Buffersによって通信を定義し、効率的なサーバー/クライアント間通信を実現します。まずはConnectの特徴について解説していきます。Production-grade simplicity: 本番運用のシンプルさConnectは本番運用でのシンプルさを特徴の1つとしています。gRPCは通信するためにgRPCクライアントや grpcurl のようなツールを使わなければ通信することが困難であったり、Webから利用する場合 gRPC-Web を使う必要がありそのために Envoy などの専用のプロキシが必要などのデメリットがありました。ConnectはConnect Protocolという独自のプロトコルを使うことができ、このプロトコルは広く利用されているHTTP機能にのみ依存して実装されています。Connect Protocolは以下のような特徴を持ちます。HTTP Semanticsに準拠して動作し、既存のネットワークライブラリを広く利用することが出来るUnary通信の場合、 HTTPツールを使用してデバッグが可能…