rivet-dev/dynamic-apps
Deploy an AI-generated backend for every user.
Rivet Dynamic Apps – 何であるか
Rivet Dynamic Apps は、ユーザーが提供するリクエストハンドラコードをセキュアなサンドボックス環境で実行できるフレームワークです。各ハンドラのコードとそのリリース状態は、Rivetアクター(軽量で状態を持つサービス)に保存されます。リクエストが到着すると、システムは以下の2つの方法で対応します:
- 高速パス – キャッシュから応答できる場合、小さな限定的なV8 isolate(軽量JavaScriptエンジン)が直接処理し、アクターへのネットワーク通信を回避します。
- 実行パス – キャッシュミスの場合、リクエストは適切なRivetアクターにルーティングされ、そのサンドボックスVM内でユーザー生成のハンドラが実行されます。
この設計は、セキュリティ(隔離されたV8サンドボックス)、低レイテンシ(ローカルキャッシュ isolate)、および状態付きバージョン管理(アクターがリリースメタデータを保持)を統合することを目指しています。
主要なコンセプト
| コンセプト | 意味 |
|---|---|
| Rivetアクター | ユーザー生成ハンドラの現在のバージョンを保存し、必要に応じて実行できる軽量で状態を持つサービス。 |
| サンドボックスデプロイVM | V8に基づく隔離環境。任意のユーザーコードをホストシステムに影響を与えずに安全に実行可能。 |
| 限定的なローカルV8 isolate | エッジ上でキャッシュヒットリクエストを直接処理する小さな、一時的なJavaScriptランタイム。レイテンシを低く保つ。 |
| リリース状態 | 現在有効なハンドラのバージョンに関するメタデータ。アクターに保存され、更新がアトミックかつトレーサブル。 |
動作方法(概要フロー)
- 開発者がアップロード:JavaScriptリクエストハンドラをアップロード。
- Rivetはコードとそのリリースメタデータをアクターに保存。
- リクエスト到着時:
- システムがキャッシュをチェック。
- キャッシュヒット → ローカルV8 isolateが即座にハンドラを実行。
- キャッシュミス → リクエストがアクターに転送され、サンドボックスVM内でハンドラが実行され、結果が返却。
- 結果は将来の高速パス処理用にキャッシュ可能。
AI / LLMワークロードにどう役立つか
READMEは RivetKit のリファレンスに llms.txt をリンクしており、プラットフォームがLLM駆動のリクエストハンドラ(例:プロンプト処理関数、カスタムルーティングロジック、軽量推論ラッパー)をホストすることを意図していることを示唆しています。各ハンドラを隔離することで、開発者はユーザー生成のAIロジックを安全に公開でき、下位のサービスの安定性を損なうリスクを回避できます。
詳細情報の入手先
- パッケージガイド –
packages/dynamic-apps/README.md– プロジェクトにライブラリを追加し、アクターを設定する方法を説明。 - API契約 –
packages/dynamic-apps/API_CONTRACT.md– カルラーとハンドラ間で使用されるJSONベースのリクエスト/レスポンススキーマを定義。 - ベンチマークレポート –
benchmarks/dynamic-apps/RESULTS.md– キャッシュヒットパスと完全なアクター実行のパフォーマンス数値を示す。 - RivetKitリファレンス – https://rivet.dev/llms.txt – RivetがLLM中心のワークフローとどう統合されるかの文脈を提供。
TL;DR
Rivet Dynamic Apps は、ユーザー提供のJavaScriptリクエストハンドラを隔離されたV8サンドボックスで安全に実行できるようにし、そのバージョン状態を軽量なアクターに保持します。キャッシュヒットリクエストはローカル isolate が即座に応答し、キャッシュミスはアクターが処理します。この構成は、高速で安全かつ更新可能なカスタムロジックが必要なAI/LLMユースケースに最適です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト