Cloudflare、分散したCDNエッジ間でも強い一貫性を提供する「Durable Objects」正式リリース。ステートフルな分散アプリが容易に
Cloudflareは、分散したCDNエッジ間でも強い一貫性を維持するオブジェクトを提供する「Durable Objects」の正式リリースを発表しました。
Today, we’re announcing that Durable Objects are generally available and production-ready for you to use! https://t.co/zSUc5w7Cn4 #FullStackWeek
— Cloudflare (@Cloudflare) November 15, 2021
Cloudflareは、世界中に分散されたCDNエッジにJavaScriptのコードを配置し実行できる「Cloudflare Workers」を提供しています。
これによってクライアントに対して非常に高速にレスポンスを返すことができ、広範囲に分散された高い冗長性を持つ分散システムが構築可能になります。
参考:JavaScriptのコードとService Workerをユーザーに近いCDNのエッジで実行可能。Cloudflareが「Cloudflare Workers」を提供開始
ただしCloudflare Workersは分散したCDNエッジで実行されるという性質上、全体として一貫した状態を持つ、いわゆるステートフルなアプリの実現は容易ではありませんでした。
例えばCloudflare Workersには、手軽に扱えるNoSQLデータベースであるキーバリューストアのWorkers KVが用意されています。
しかしWorkers KVは結果整合性を採用しているため、別々のCDNエッジからの処理要求を受け取ると、後から書き込まれたデータがすでに書き込まれていたデータを上書きするなどの可能性があります。
これに対して、今回リリースされたDurable Objectsは強い一貫性を提供するため、別々のCDNエッジからの処理要求に対して、つねに適切な順番でデータが処理され、どの瞬間もデータの矛盾が生じないことが約束されています。
つまり分散されたCDNエッジ上で実行されるCloudflare Workersのアプリケーションでも、Durable Objectsを用いることで簡単に全体として一貫性のあるステートフルな振る舞いをするアプリケーションが実現できるということです。
下記はDurable Objectsが発表されたときのCloudflareのブログ「Workers Durable Objects Beta: A New Approach to Stateful Serverless」からの引用です。
Durable Objects provide a truly serverless approach to storage and state: consistent, low-latency, distributed, yet effortless to maintain and scale. They also provide an easy way to coordinate between clients, whether it be users in a particular chat room, editors of a particular document, or IoT devices in a particular smart home.
Durable Objectsは、ストレージとステートに対して本当の意味でサーバレスなアプローチを提供します。それはつねに一貫性があり、低レイテンシで、分散されていながら維持や拡張が容易です。これにより複数ユーザーによるチャットルーム、複数ユーザーによるドキュメントの同時編集、複数のIoTデバイスを備えたスマートホームなどにおけるクライアント間の調停を容易にする方法を提供します。
Cloudflareは、チケット販売サイトのようなアクセスが集中するWebサイトに対して、その手前でユーザーのアクセスをいったん保留にし、世界中のユーザーからのアクセスを順番待ちにしてもらうことでWebサイトの負荷を下げる「Cloudflare Waiting Room」と呼ばれるサービスを提供しています。
Durable Objectsはすでに、このCloudflare Waiting Roomの背後で使われているとのことです。
あわせて読みたい
Cloudflare、CDNエッジからMySQLやPostgreSQLへ接続を可能にする「Relational Database Connectors」発表
≪前の記事
アジャイル開発の外部委託が「偽装請負」だと疑われないためにすべきこと、厚労省が公表した疑義応答集を読み解く(後編)。Agile Japan 2021