Web開発
Celld: セルフホスト型の分散型Durable Objects
Celld: Self-hosted, distributed Durable Objects (celld.dev)
要約
Celldは、CloudflareのDurable Objectsのモデルをセルフホストで実現するソリューションです。インフラストラクチャの選択肢を広げ、配置、状態、運用上の証拠をユーザーが管理するS3バケットに移行します。これにより、単一のSQLiteデータベースとLitestreamのLTXフォーマットを利用して、ステートフルな分散システムを構築できます。
全文翻訳
仕組み
バケットがコーディネーターとなり、メンバーシッププロトコル、障害検出器、コンセンサスは不要です。所有権はバケット内のレコードとして、アトミックな単一の書き込みで取得されます。celldの組み込みレプリケーターは、各セルのSQLite状態を継続的にそのバケットにLTXセグメントとして送信します。
YOUR INFRASTRUCTURE
YOUR S3 BUCKET
SQLite / LTX
10,000s of inactive cells
celld on its own VM
celld on its own VM
celld on its own VM
each cell is one sqlite database
LTX
requests / responses
YOUR INFRASTRUCTURE
requests
responses
celld on its own VM
each cell is one sqlite database
LTX
YOUR S3 BUCKET
SQLite / LTX
10,000s of inactive cells
信頼性
Durable Objectsは強力なプログラミングモデルです。celldは、配置、状態、運用上の証拠を、選択したインフラストラクチャに移行しながら、そのモデルを維持します。
orangecloud.report · 12 July 2026 ↗
cloudflarestatus.com · 16 July 2026 ↗
モデルを自分で実行すると何が変わるか。
配置
共有マシンを失うことはない
セルのIDはマシンに固定されません — 所有権はバケット内のリースであり、比較・交換によって付与されます。ノードを失っても、別のノードがリースを取得し、数秒でセルを復元します。ベンダーが復元できない配置をベンダーに依存するのではなく、あなたのフリートがあなたのストレージを読み取ります。
ブラスト半径
あなたが選択した障害ドメイン
あなたのフリートは依然としてマシン、ネットワーク、バケットプロバイダーに依存します。変わるのはテナンシーです。共有Durable Objectsスケジューラや配置レイヤーが、あなたのアプリケーションを他の顧客のワークロードに結合させることはありません。
可読性
読み取れる障害
セルが誤動作した場合、証拠はあなたのディスク上にあります — 所有権レコード、SQLiteおよびLTXファイル、ログです。ステータスページに「私のセルに何が起こったのか」と尋ねるのではなく、sqlite3とgrepで答えます。
セルフホスティングが自動的に信頼性が高くなるわけではありません。障害ドメインを明示的かつ検査可能にします。あなたのノード、あなたのバケットプロバイダー、そしてあなたの運用上の選択です。
そして、トーンについて明確にしておきます。私たちはCloudflareを愛しています — このページ自体もCloudflare Workerによって提供されています。Durable Objectsモデル — 独自のストレージを持つシングルスレッドオブジェクトで、名前でアドレス指定される — は、分散システムが長年手にしてきた最高のプリミティブの1つであり、その設計はKenton Varda氏とCloudflare Workersチームのものです。celldは彼らのアイデアへのラブレターです。これほど良いプリミティブは、どこでも実行されるに値します。
celld=V8+SQLite+LTX
S3に完全に依存するステートフルな分散システム
LTXはBen Johnson氏によるLitestreamのレプリカフォーマットです。
ドキュメントを読む →