Medium の DFINITY 公式の記事 Composite Queries: Horizontal Scaling for Multi Canister Dapps (2023/8/4) の日本語訳です。
待望の機能 コンポジットクエリー が Internet Computer に搭載されます!この機能は、キャニスターがクエリーを処理している間に他のキャニスターを呼び出すことを可能にします。コンポジットクエリー(以前はインターキャニスタークエリーコールと呼ばれていた)は、コンポーザブルでスケーラブルな Dapp を構築するための鍵になります。
この機能がローンチされる前は、開発者は複数のキャニスターからデータを照会するために、Dapp のブラウザー側で複雑な JavaScript オーケストレーションコードを書かなければなりませんでした。現在では、クライアントのコード(例 JavaScript ライブラリ)が単一のキャニスターにクエリーを発行し、それが他のキャニスターにクエリーを発行します。ユーザーから見えるレイテンシーが改善されるだけでなく、開発者はクライアント側のコードをシンプルに保つことができ、開発者がすべてのクライアントのライブラリにアクセスできないユースケースをサポートできます。
コンポジットクエリーは、データのシャーディングや負荷分散のために複数のキャニスターを使用する Dapp にとって非常に重要です。コンポジットクエリーによって、開発者はすでに Dapp を水平方向に拡張でき、クライアント側のコードを簡素化できます。現在のバージョンでは、Dapp のキャニスターが同じサブネット上にある必要があります。また、一時的な制限として、コンポジットクエリーをレプリケートモードで実行できません。つまり、アップデートメソッドから呼び出すことができず、アップデートとして実行できません。将来的にはこれらの制限を解除し、レプリケートの実行と同様にサブネットをまたいだクエリーコールを可能にする予定です。
コンポジットクエリーコールを使用する方法の例は、データが複数のバックエンドキャニスターにまたがって格納されている、パーティショニングされたキーバリューストアの例で見ることができます。ここでは、ブラウザ上の JavaScript コードがフロントエンドキャニスターに単一のコンポジットクエリーコールを行い、フロントエンドキャニスタが1つ以上のバックエンドキャニスターにクエリーを実行して、結果をクライアントに返します。詳細な技術情報については、ドキュメントを参照してください。
私たちは、開発者たちがコンポジットクエリーを使用して、驚くほど新しいものを創り出すのを心待ちにしています。今後のアップデートにご期待ください。コンポジットクエリーをさらに強力なものにするために、異なるネットワーク間での呼び出しやレプリケートの実行などの機能を追加していく予定です。
ハッピーコーディング!
- DFINITY チーム
internetcomputer.org についてもっと知り、@DFINITYDev で開発者コミュニティに参加しよう。
詳細はこちら:
Technical documentation
Technical blog post
Motion proposal