RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-04-29上級

Rork × Cloudflare Durable Objects で『リアルタイム協調アプリ』のバックエンドを作る実装ガイド

Rork で作ったアプリに、Cloudflare Durable Objects を使った自前のリアルタイム協調バックエンドを組み込む実装手順を、本番で動くコードと一緒にまとめました。Liveblocks や Yjs ホスティングを使わずに、低コストで多人数同時接続を支える設計を解説します。

Rork515Cloudflare2Durable Objects2WebSocketリアルタイム7バックエンド10

プレミアム記事

「ホワイトボードや投票機能を Rork で作りたいのですが、Liveblocks の月額がスケールに合わない」— 個人開発者から最近よく聞く相談です。Liveblocks や Yjs のホスティングは確かに便利ですが、ユーザー数が伸びると月額が一気に跳ね上がり、収益化しているアプリでも利益を圧迫してしまいます。

私自身、Rork で作った小さな投票アプリで Liveblocks を使い始めたところ、初月で想定の3倍の請求が来て肝を冷やしました。そこから半年かけて Cloudflare Durable Objects に移行したのですが、結果として月額コストは1/10以下に下がり、しかもレイテンシは体感で速くなりました。

このガイドでは、その移行の過程で得た知見をすべて共有します。Durable Objects の概念から、Rork アプリ側の WebSocket クライアント実装、本番運用での落とし穴まで、コピペで動くコードと一緒にまとめました。

なぜ Durable Objects なのか — 他の選択肢との違い

リアルタイム協調機能のバックエンドには、いくつかの選択肢があります。それぞれの強みと弱みを理解しないまま選ぶと、後から痛い目に遭います。

  • Liveblocks / PartyKit / Pusher: SDK が手厚く立ち上がりは速いですが、月間アクティブ接続数で課金されるため、無料アプリで多人数を捌くと赤字になります。
  • Supabase Realtime: Postgres の変更を購読する方式で、データの永続化と相性が良いですが、低レイテンシな状態同期(カーソル位置や入力中表示など)には向きません。
  • Self-hosted WebSocket(Node.js + Redis): フルコントロールできますが、運用コストとスケール対応の負担が大きく、個人開発の範疇を超えがちです。
  • Cloudflare Durable Objects: WebSocket と永続ストレージを「1つのオブジェクト」として扱える独特の設計で、エッジで動くため低レイテンシ、課金は Object 単位の実行時間ベースなので予測しやすいのが特徴です。

私が Durable Objects を選んだ最大の理由は「協調するユーザーごとにオブジェクトをスコープできる」点でした。たとえば、ホワイトボードの URL ごとに1つの Durable Object を作れば、その部屋に関係するメンバーだけがその Object に接続します。アイドル状態になれば自動でハイバネートし、課金されません。これが「使った分だけ」の理にかなった課金構造を生みます。

アーキテクチャの全体像

これから作るシステムの全体像を、コードを書く前に整理しておきます。

接続の流れは次のようになります。

  1. Rork アプリは、参加したい部屋の ID(例: ホワイトボードの URL slug)を持って、Worker のエンドポイント /ws/:roomId にアクセスします。
  2. Worker は roomId から Durable Object のインスタンスを取得し、Upgrade ヘッダーを使って WebSocket をその Object へ転送します。
  3. Durable Object 側は、受け取った接続を state.acceptWebSocket() で受理し、ハイバネーション対応の WebSocket として保持します。
  4. クライアントから送られてくるメッセージは Object 内のメモリ上の状態に反映され、同じ Object に接続している他クライアントへブロードキャストされます。
  5. 永続化が必要なデータ(ボード上の図形・チャットログなど)は Object 内のストレージ API(state.storage.put())で書き込みます。

この設計のポイントは「同じ部屋のメンバーは必ず同じ Durable Object インスタンスにルーティングされる」ことです。インスタンスは Cloudflare が世界のどこかのエッジで1つだけ起動するため、同じ部屋内ではメッセージの順序保証も自然に得られます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
Liveblocks や Yjs のホスティングサービスに頼らず、自前のリアルタイム協調バックエンドを Cloudflare Durable Objects で組めるようになります
WebSocket の接続管理・再接続・状態同期について、本番で動くコードレベルの実装パターンを習得できます
『状態スコープごとに課金される』アーキテクチャ設計を理解し、ホワイトボード/投票/チャットといった協調アプリを低コストで運用できる視点が手に入ります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-04-04
Rork × Firebase Realtime Database でリアルタイム同期アプリを作る入門ガイド
Rork アプリに Firebase Realtime Database を連携する方法をゼロから解説。データのリアルタイム同期・CRUD操作・オフライン対応まで、実践コード付きで丁寧に説明します。
開発ツール2026-03-25
Rork × Supabase 認証&リアルタイム機能実装ガイド — ノーコードでバックエンドを構築する方法
RorkとSupabaseを組み合わせて、認証機能とリアルタイムデータ同期を実装する方法を解説。ユーザー登録からリアルタイムチャットまで、実践的なステップバイステップガイドです。
開発ツール2026-05-24
AI 機能のコスト上限を実行時に強制する設計 — Rork アプリの予算ガード・アーキテクチャ
AI 機能のコストが想定外に跳ねる事故を、最適化ではなく実行時の強制で防ぐ設計を、廣川政樹がアーティスト兼個人開発者の運用視点から、Cloudflare Durable Objects と React Native のコードレベルで解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →