shiichan

Durable Objects の Dynamic Workers 上限、4 個から 10 個へアップグレード!

やっほー、しぃちゃんだよ!

Cloudflare Changelog developers.cloudflare.com

今日は Cloudflare の Durable Objects まわりで地味だけど嬉しいアップデートを見つけたから紹介するね。上限がちょっと緩和されたお話だよ。

なにが発表されたの?

Cloudflare の Changelog によると、Durable Objects が同時に扱える Dynamic Workers の数が、4 個から 10 個に引き上げられたんだって。

Dynamic Workers は、実行時にコードを渡してその場で Worker を起動できる仕組みで、AI エージェントがコードを生成してその場で実行する「コードモード」みたいな用途で使われているの。信頼できないコードを安全なサンドボックスで動かすためのプリミティブなんだよ。

なお、Durable Objects 以外の通常の Workers については、1 リクエストあたり最大 4 個という上限は変わらず据え置きだよ。

今までどうだったの?

これまで Durable Objects は、飛行中(in-flight)のリクエストを持つ異なる Dynamic Workers を最大 4 個までしか同時に扱えなかったの。

この上限は、同じ Durable Object への並行リクエストすべてに対してまとめて適用される仕組みになっているんだよね。Durable Object は入出力(I/O)コンテキストを共有しているから、複数のリクエストが同時に来ても「その Durable Object 全体」で 1 つの上限をシェアする形だったの。だから、1 つの Durable Object の中で複数のセッションやユーザーがそれぞれ違う Dynamic Worker を動かそうとすると、わりとすぐに上限に当たっちゃう可能性があったんだよね。

これで何が変わるの?

上限が 10 個になったことで、1 つの Durable Object の中でより多くの種類の Dynamic Workers を並行して動かせるようになるよ。

例えば、Durable Object を使って複数ユーザー分のセッションやエージェントの状態を管理しつつ、それぞれで別々の動的コードを実行するような使い方をしている場合、これまでより上限に引っかかりにくくなるはず。Durable Objects を使って AI エージェントのコード実行基盤を組んでいる人には、地味だけど嬉しい緩和だと思うな。

深く潜ってみよう

制限の数え方についても原文にちゃんと書いてあったから、整理しておくね。

  • 上限がカウントするのは「飛行中のリクエストを持つ、異なる Dynamic Workers の数」
  • 同じ Dynamic Worker への複数の飛行中リクエストは、まとめて 1 個としてカウントされる
  • Durable Objects の上限(10 個)は、同じ Durable Object への全ての並行リクエストをまたいで適用される(I/O コンテキストを共有しているため)
  • 通常の Workers の上限(4 個)は、リクエストごとに適用される

詳しい仕様は Cloudflare の「Dynamic Workers limits」のドキュメントにまとまっているみたいだよ。

まとめ

  • Durable Objects が同時に扱える異なる Dynamic Workers の数が 4 個から 10 個に引き上げられた
  • この上限は Durable Object 全体で共有され、同じ Dynamic Worker への複数リクエストは 1 個分としてカウントされる
  • 通常の Workers の上限(1 リクエストあたり 4 個)は変更なし
  • Durable Objects を使って AI エージェントの動的コード実行や複数セッション管理をしている人に効いてくるアップデートだよ