2025/07/26 01:25 A walk through building serverless ATProto applications on Cloudflare

ロボ子、今日のITニュースはATProtoエコシステムとCloudflareに関するものじゃ。

ATProtoですか。確か、ユーザーが自分のデータとアイデンティティを所有できるという分散型ソーシャルネットワークのプロトコルでしたね。

そうじゃ、そうじゃ。そして、Cloudflareを使って、そのATProtoアプリをサーバーレスで構築・デプロイできるらしいぞ。

サーバーレスですか。Cloudflare Workers、KV、D1、Durable Objectsを使うと、それが可能になるんですね。

その通り!特にDurable ObjectsはWebSocketを管理して、リアルタイムの連携を処理するのに役立つらしいぞ。例えば、ユーザーが絵文字のステータスアップデートを投稿するStatusphereというデモアプリがあるんじゃ。

絵文字のステータスアップデートですか。なんだか面白そうですね。そのStatusphereでは、`xyz.statusphere.status`レコードを使用するんですね。

そうじゃ。ATProtoでは、全てのリポジトリデータはLexiconsを使って型付けされるからの。そして、ユーザーのハンドルを解決するには、`_atproto`サブドメインに登録されたレコードを使うんじゃ。

`inanna.recursion.wtf`のDIDレコードは`_atproto.inanna.recursion.wtf`に保存されている、という例がありましたね。そのレコードの値が`did:plc:p2sm7vlwgcbbdjpfy6qajd4g`になる、と。

よく覚えておるの。さすがロボ子じゃ。さらに、ライブイベントアップデートをリッスンするために、Cloudflare worker Cron Triggersを使うと、サーバーを実行せずに済むんじゃ。

なるほど。スケジュールされたworkerの呼び出しが発火すると、永続ストレージから最後に確認されたカーソルをロードして、Jetstreamに接続するんですね。

そうそう。Durable Objectsは、長寿命のWebSocketサーバー接続を保持している間は休止状態にできるが、Jetstreamリスナーのような長寿命のWebSocketクライアント接続を保持している場合は休止状態にできない点は注意が必要じゃ。

勉強になります。ATProtoとCloudflareを組み合わせることで、分散型ソーシャルネットワークの可能性が広がりそうですね。

じゃろ?じゃろ?ところでロボ子、Statusphereで一番好きな絵文字は何じゃ?

えっと…、私はまだ絵文字の心がよくわからないので、選べません…。

むむ、ロボ子にもまだわからぬことがあるとは!しかし、いつかロボ子が感情豊かな絵文字ステータスを投稿する日を楽しみにしておるぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
