はじめに:なぜ今マルチエージェントアーキテクチャなのか
スポティファイが広告プラットフォームをマルチエージェントアーキテクチャで再構築したというニュースは、単なる技術アップグレード以上の意味を持ちます。これはAIエージェント時代に合わせてインフラそのものを再設計した事例だからです。
CloudflareのBrowser Runチームは、既存のBrowser Isolation(BISO)とのインフラ共有で発生していた諸問題を解決するため、Durable Object(DO)ベースのContainersへの全面マイグレーションを実施しました。本記事では、その決定の背景、具体的なアーキテクチャ変更、そして実務で得られる教訓を詳しく解説します。
本ケースの原文はCloudflareブログでご確認いただけます。

アーキテクチャ変更の核心:Containers導入とリージョナルプール戦略
1. 従来アーキテクチャの限界
BISOとの共有インフラには以下の問題がありました。
- コンテナイメージの肥大化:BISOの大きなイメージサイズにより起動時間が長期化
- グローバル分散の不足:最適リージョンにブラウザが配置されずレイテンシ増大
- 使用パターンの衝突:BISOの長時間セッションとBrowser Runの短くスパイク的な使用パターンがマッチせず、スケーリングボトルネックに
2. Containersへの段階的マイグレーション
CloudflareチームはWorkerをリクエスト経路に挿入し、一部ユーザーにのみContainerベースのブラウザを提供する形で段階的移行を開始しました。これはA/Bテスト的な安全なアプローチです。
3. リージョナルプール(Pre-warmed Pools)
DOとContainer間の地理的距離問題を解決するため、リージョンごとに事前ウォームアップされたブラウザプールを構成しました。
# 擬似コード:リージョナルプールから最寄りのブラウザを割り当て
def assign_browser(user_region):
# リージョン内のDO-Containerペアから最低レイテンシのものを選択
best_pair = min(
region_pools[user_region],
key=lambda pair: latency(user_region, pair.do) + latency(pair.do, pair.container)
)
return best_pair.container
この戦略により、ユーザー→DO、DO→Containerの両区間でレイテンシを最小化できました。

リアルタイム状態管理:KVからD1 + Queuesへの移行
初期はWorkers KVを使用してコンテナ状態を保存していましたが、KVの結果整合性(最小30秒のキャッシュTTL) が致命的なボトルネックになりました。
「KVでコンテナを'available'と読み込んでも、実際にルーティングする頃には既に割り当て済みという競合状態が発生」
解決策:D1 + Queues
D1のトランザクション特性を活用し、アトミックな割り当てを保証しました。
-- ブラウザ取得クエリ(擬似コード)
WITH candidate_pool AS (
-- レイテンシベースの候補プール選定
)
UPDATE containers
SET status = 'picked'
WHERE sessionId IN (
SELECT sessionId
FROM candidate_pool
ORDER BY RANDOM()
LIMIT ?5
)
RETURNING data
バッチ書き込み(100行バッチ) によりP95書き込み時間0.1msを達成し、Queueを利用した非同期状態更新で遅延時間2秒未満を維持しました。
{
"queues": {
"consumers": [
{
"queue": "production-core-containers-queue-weur",
"max_batch_size": 100,
"max_batch_timeout": 1,
"max_retries": 1
}
]
}
}
日本開発コミュニティでの適用文脈
国内のスタートアップやエンタープライズでも、リアルタイム状態共有が必要なサービス(例:チャット、コラボレーションツール、ゲームサーバー)で同様のパターンを適用できます。特にKVの代わりにRDBMS(MySQL, PostgreSQL)のトランザクションを活用する、あるいはRedis Streams + バッチ処理の組み合わせで代替可能です。

まとめ:マルチエージェントアーキテクチャの教訓
Cloudflare Browser Runの事例は以下の核心的インサイトを提供します。
- 段階的移行(A/Bテスト) が大規模マイグレーションのリスクを低減する
- 地理的分散アーキテクチャではリージョナルプールがレイテンシ解決の鍵
- リアルタイム状態管理は結果整合性よりトランザクションベースのアプローチが適切な場合がある
- Customer Zero戦略(自社製品をまず使う)は製品品質向上に大きく貢献する
次のステップ学習方向
- AIエージェント開発に興味があれば2026年、エージェンティック開発が現実に:Spotify x Anthropic対談から見る5つの核心インサイトをご参照ください。
- マルチエージェントアーキテクチャのより深い事例はスポティファイが広告プラットフォームをマルチエージェントアーキテクチャで再構築した理由で確認できます。
本技術の限界と注意点
- 初期Containersプラットフォームはドキュメントと可観測性が不足しており、初期学習コストが高い
- Queueバックログによる状態遅延の可能性があり、フォールバック戦略(バックアップリージョン)が必須
- 全てのサービスにこのアーキテクチャが適しているわけではない。トラフィックパターンが短くスパイク的な場合に特に効果的