CloudFlare、Durable Objectsのベータ版を公開
(blog.cloudflare.com)- Serverless向けの「Unique Durable Objects」
→ Objects : OOPの概念そのままで、クラスのインスタンスであり、コードと状態を含む
→ Unique : UUIDを持つ。世界中の別のWorkerからでもIDさえ分かれば、そのオブジェクトにメッセージを送れる
→ Durable : 一般的なオブジェクトと違い、ディスクに永続的な状態を保存できる。レイテンシなしでアクセスして利用可能
- 2つの主要機能
→ Storage : 強力なTransactional Consistencyを提供。大きなDBを複数の小さな単位に分割可能。運用負荷なしでスケール
→ Coordination : サーバーレスのリクエストは通常ランダムにロードバランシングされるため、2つのクライアントが同じWorkerに接続することは不可能だったが、これで可能に。
つまり、リアルタイムチャット、共同編集、ビデオ会議、Pub/Subメッセージキュー、ゲームセッションなどをサーバーレスで実装可能
WebSocketを使うにはこのようなCoordinationが必要だったが、DOによって可能になったことで、WorkersでもWebSocketのサポートを開始
- Durable ObjectsはRegionの概念なしに全世界を対象とする(Cloudflareが自動的に近い場所へ転送して管理)
適用分野
-
キラーアプリは、大規模なユーザーが使うリアルタイム文書共同編集ツールのようなものになりそう
-
Atomic Counter : 複数クライアントが同時にリクエストしても、増加/減少の損失がない同時処理カウンター
-
チャット : 超大規模なチャットルームも数百行のコードで実現でき、各IPごとのレート制限も可能
-
ショッピングカート、ゲームサーバー、IoT Coordination、ソーシャルフィード、コメント/チャットウィジェット
Durable Objectsの未来 : 真のEdgeデータベース
現在はベータ招待を受ける必要がある
価格はまだ検討中だが、AWS DynamoDBやGoogle Cloud Firestoreより安くなる予定とのこと(PMのGregがHNに残したコメントより)
1件のコメント
サーバーレスはこれまで主にステートレスなものに適用されてきましたが、Coordination が必要な部分まで含めるように、さらに拡張しているということですね。
最近のCloudflareの動きはとても興味深いです。
CloudFlare、Workers Unboundサーバーレスのベータを開始 https://ja.news.hada.io/topic?id=2543
CloudFlareがWorkersのコールドスタート時間を0にした方法 https://ja.news.hada.io/topic?id=2567
Cloudflareが自社グローバルネットワークを利用する24時間生放送TVサービスをローンチ https://ja.news.hada.io/topic?id=2227