はじめに
Tablebox は、MoQ over WebTransport の上に作った、LiveKit のようなリアルタイムアプリケーション基盤です。二つのものからなります。
- MoQ で、参加者(人とアプリ)が任意のパスにデータとメディアを出し、それを読む。
- PaaS で、開発者が、誰がどのパスを読み書きできるかを決め、管理し、使用量を見る。
さらに Tablebox は、参加者と同じように読んで出す五つのプログラムを、すべてのプロジェクトで標準で動かします。外からのストリームを受けて出す Ingress、読んで外へ送る・録る Egress、読んでまとめて出す Aggregation、読んで保存し後で出す Persistence、読んで話して出す Agent です。
ホストするサービスはまだ公開していません。そのため Tablebox はまだ使えません。 運営者は Relay の URL、Manager API のアドレス、Console のアドレス、Ingress と Egress のホストをまだ公開していません(リファレンス)。このドキュメントは Tablebox が何をするか、どう作るかを説明します。それまでの間、自分のマシンで試す方法は使い始めるにあります。
Tablebox が MoQ に足すもの
| 追加 | MoQ だけでは | Tablebox では | LiveKit で近いもの | 読む |
|---|---|---|---|---|
| 接続と権利 | relay はトークンで接続を決めるだけ | プロジェクトとキー、リンク、誰がどのパスを読み書きできるかをトークンかバックエンドの要らない規則で決めること、拒否の理由 | アクセストークン | 接続する |
| 管理 | なし | 管理 API と Console: プロジェクト、キー、環境変数、参加者の取り外し、パスの範囲の閉鎖、使用量、上限 | Server API、Cloud のダッシュボード | プロジェクトの管理 |
| Aggregation | パスごとに書き手は一人 | 大勢が同時に変える共有の状態をまとめ、全員が同じものを読めるようにし、各書き手に変更が適用されたかを伝える | なし | Aggregation |
| Persistence | 最新の内容だけ、出した人がいる間だけ | 選んだ内容を開発者のストレージに保存し、全員が去った後でも、後から来た人に返す | なし | Persistence |
| Egress | 内容は流れて残らず、MoQ を話さないものには届かない | 音声と映像を開発者のストレージに録り、配信サービスへ送る | Egress | Egress |
| Agent | なし | 声でも文字でも話せて遮れる AI。開発者の AI プロバイダのアカウントで動く | Agents | Agent |
| Ingress | MoQ を話さない機器は出せない | 配信ソフトや放送機器のストリームを受け、パスに出す | Ingress | Ingress |
プログラムはすべてのプロジェクトで動きます。プログラムが使うキーや送り先は、プロジェクトの環境変数です(Tablebox のプログラム)。
保証
- G1. 取り外された人と、閉じたパスの範囲に接続している人は切り離されます。開発者が決めた上限に達すると、利用は止まります。
- G2. 管理の側が止まっていても、やり取りは続きます。
規模
- S1. サーバーを足すと、扱える人とパスが増えます。同じパスを読み書きする人は、どのサーバーにつながっていても一緒に動けます。
- S2. 一つのパスの範囲に 10 万人が接続できます。各自が受け取るものは、人数ではなく、その人が読むものに応じます。
部品
| 部品 | すること |
|---|---|
| Relay | MoQ を届ける: トークンかリンクで接続を受け入れ、その権利を守らせ、出されたものを、Relay をまたいで読む人へ運ぶ |
| SDK | ブラウザー、Node、Rust から接続し、公式の MoQ のオブジェクトでパスを出す・読む・一覧する・受け持つ |
| Manager | PaaS を保つ: アカウント、プロジェクト、キー、リンク、環境変数、取り外し、閉鎖、使用量、上限。人がやり取りするものの道筋には入らない |
| Console | Manager の画面 |
| Tablebox のプログラム | Aggregation、Persistence、Egress、Agent、Ingress。参加者と同じように Relay に接続する |
アプリは SDK で Relay と話します。開発者のバックエンドはプロジェクトのキーでトークンに署名し、Manager を呼ぶのは管理のときだけです。
次に読むもの
- 使い始める: Console のリンクと、カメラを出して他の全員のカメラを再生するブラウザーのページ。それからトークンに署名するバックエンド。
- 接続する、出す・読む、パスを受け持つ: SDK がすること。
- Tablebox のプログラム、それから Aggregation、Persistence、Egress、Agent、Ingress。
- プロジェクトの管理とリファレンス。