rivet-dev/dynamic-apps

Deploy an AI-generated backend for every user.

Rivet Dynamic Apps – 何であるか

Rivet Dynamic Apps は、ユーザーが提供するリクエストハンドラコードをセキュアなサンドボックス環境で実行できるフレームワークです。各ハンドラのコードとそのリリース状態は、Rivetアクター(軽量で状態を持つサービス)に保存されます。リクエストが到着すると、システムは以下の2つの方法で対応します:

  1. 高速パス – キャッシュから応答できる場合、小さな限定的なV8 isolate(軽量JavaScriptエンジン)が直接処理し、アクターへのネットワーク通信を回避します。
  2. 実行パス – キャッシュミスの場合、リクエストは適切なRivetアクターにルーティングされ、そのサンドボックスVM内でユーザー生成のハンドラが実行されます。

この設計は、セキュリティ(隔離されたV8サンドボックス)、低レイテンシ(ローカルキャッシュ isolate)、および状態付きバージョン管理(アクターがリリースメタデータを保持)を統合することを目指しています。


主要なコンセプト

コンセプト 意味
Rivetアクター ユーザー生成ハンドラの現在のバージョンを保存し、必要に応じて実行できる軽量で状態を持つサービス。
サンドボックスデプロイVM V8に基づく隔離環境。任意のユーザーコードをホストシステムに影響を与えずに安全に実行可能。
限定的なローカルV8 isolate エッジ上でキャッシュヒットリクエストを直接処理する小さな、一時的なJavaScriptランタイム。レイテンシを低く保つ。
リリース状態 現在有効なハンドラのバージョンに関するメタデータ。アクターに保存され、更新がアトミックかつトレーサブル。

動作方法(概要フロー)

  1. 開発者がアップロード:JavaScriptリクエストハンドラをアップロード。
  2. Rivetはコードとそのリリースメタデータをアクターに保存。
  3. リクエスト到着時:
    • システムがキャッシュをチェック。
    • キャッシュヒット → ローカルV8 isolateが即座にハンドラを実行。
    • キャッシュミス → リクエストがアクターに転送され、サンドボックスVM内でハンドラが実行され、結果が返却。
  4. 結果は将来の高速パス処理用にキャッシュ可能。

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ユースケースに最適です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト