設計原則
- ポーリング優先。 すべての機能は、単純な GET ポーリングで利用できます。SSE ストリームはライブ拡張機能であり、正本(source of truth)にはなりません。
- すべて再開可能。 送信は冪等であり、ジョブの状態と出力は
expires_atまで ID で取得できます。 - コンテンツアドレス型アセット。 アセットは、サーバーが計算した blake3 ハッシュをキーとする blob 上の UUID 識別レコードです。そのため、同一の入力が 2 回アップロードされることはありません。
- URL を組み立てず、リンクに従う。 レスポンスには後続の URL が埋め込まれています。