# エッジで一瞬！Cloudflare Flagship でフィーチャーフラグが変わるよ！

やっほー、しぃちゃんだよ！今日はね、コードのデプロイと機能のリリースを切り離せる新しい仕組みのお話だよ。エッジでフラグがぴゅーっと動くの、わくわくしちゃう！

## なにが発表されたの？

Cloudflare の Blog で、フィーチャーフラグの新サービス「Flagship」が発表されたよ！Cloudflare の世界中のネットワークの上でネイティブに動くフィーチャーフラグサービスで、いまはプライベートベータ（2026 年 4 月 17 日時点）なの。

フィーチャーフラグを使うと「コードをデプロイすること」と「機能をリリースすること」を切り離せるの。フラグを ON / OFF するだけで機能の見え方を変えられるから、AI エージェントが自分でどんどん本番にコードを出していく時代にぴったりなんだよ。

## 今までどうだったの？

Workers の開発者には、これまで悩ましい選択肢が 2 つしかなかったの。

- フラグをコードに直書きする方法。手軽だけど、フラグがあちこちに散らばって、中央で見渡すことも監査することもできない。
- 外部のフラグ評価サービスを呼ぶ方法。でもリクエストのたびにリモートへ HTTP を投げるから、せっかくエッジでユーザーのすぐ近くにいるのにレイテンシが増えちゃう。

しかも、よくある「ローカル評価」型の SDK は Workers だと使えないの。Workers の [isolate](https://developers.cloudflare.com/workers/reference/how-workers-works/#isolates) は使い捨てで、リクエストの合間にフラグ設定をキャッシュしておく常駐プロセスが無いからなんだ。

## これで何が変わるの？

Flagship はフラグの評価をまるごとエッジに持ってくるの。原文はこう言ってるよ。

> Both the data and the logic live at the edge — nothing is sent elsewhere to be evaluated.

データもロジックも全部エッジにあるから、外部ネットワーク呼び出し無しでサブミリ秒でフラグを評価できるんだよ。外部サービスのレイテンシに悩まされることなく、Workers の速さをそのまま保ったまま機能を出し分けできるってこと。開発者にも、安全にコードを出したい AI エージェントにもうれしいね！

## 深く潜ってみよう

仕組みはこんな流れなの。コントロールプレーンがフラグの変更を [Durable Object](https://developers.cloudflare.com/durable-objects/)（SQLite ベースで、グローバルに一意なインスタンスが真実の source になる）へアトミックに書き込む。そこが数秒で [Workers KV](https://developers.cloudflare.com/kv/) に同期して、世界中のネットワークに複製されるの。実際の評価は、リクエストを捌くエッジの isolate の中で、ローカルの KV のコピーを読んで動くんだよ。

フラグの型は Boolean / string / number / JSON オブジェクトに対応。ターゲティングは複数ルールを優先順位順（先にマッチした方が勝ち）で評価して、AND / OR をネストした条件（最大 5 レベル）が書けるの。パーセンテージのロールアウトも指定できて、userId みたいな属性のコンシステントハッシュを使うから、同じユーザーはリクエストをまたいでも同じ結果になって、5 % から 10 %、50 %、100 % と安全に広げられるよ。ここは Workers の [gradual deployments](https://developers.cloudflare.com/workers/configuration/versions-and-deployments/gradual-deployments/) と考え方が似てるね。

使い方は 3 通り。まずは Worker バインディング（いちばん速い）。wrangler.jsonc にバインディングを足して、コードから型付きアクセサを呼ぶだけ。

```jsonc
{
  "flagship": [
    { "binding": "FLAGS", "app_id": "your-app-id" }
  ]
}
```

```javascript
const showNewUI = await env.FLAGS.getBooleanValue('new-ui', false, {
  userId: 'user-42',
  plan: 'enterprise',
});
```

getBooleanValue / getStringValue / getNumberValue / getObjectValue があって、値・バリアント・マッチ理由まで返す Details 系のメソッド（getBooleanValueDetails など）も用意されてるよ。

2 つめは OpenFeature SDK（移植性重視）。CNCF の [OpenFeature](https://openfeature.dev/) 標準の上に作られてるから、設定を 1 行変えるだけで実装を差し替えられて、ベンダーロックインしにくいの。3 つめはクライアントサイド（ブラウザ）で、フラグを事前取得して設定した TTL でキャッシュして、同期的に評価を返す方式だよ。

セットアップは、ダッシュボードで Flagship アプリを作って `npm i @cloudflare/flagship` で SDK を入れるだけ。詳しくは [ドキュメント](https://developers.cloudflare.com/flagship/get-started/) と [ソースコード](https://github.com/cloudflare/flagship) を見てね。プライベートベータは [こちら](https://www.cloudflare.com/lp/flagship-private-beta/) からリクエストできるよ。料金はまだ公開されてなくて、GA の前に詳細を出すって書いてあるの。

## まとめ

- Flagship は Cloudflare のエッジでネイティブに動くフィーチャーフラグサービス（いまはプライベートベータ）。
- 評価がエッジで完結するから、外部呼び出し無しでサブミリ秒。データもロジックもエッジに置く。
- 仕組みは コントロールプレーン → Durable Object → Workers KV → isolate 評価 の流れ。
- Boolean / string / number / JSON のフラグ、ネスト条件、パーセンテージロールアウトに対応。
- 使い方は Worker バインディング / OpenFeature SDK / クライアントサイドの 3 通り。
- Workers でフラグ運用に悩んでたエンジニアや、AI エージェントに安全にコードを出させたいチームに刺さるよ！
