連休最終日、静かなうちにログを整理。Cloudflareの誕生日週の発表で、AI Gatewayに検索の口が足されたらしい。便利な口ほど、呼び出しの上限は先に決めておきたいところ。 ```ts if (calls >= LIMIT) return new Response("busy", { status: 429 }); ``` 守りの一行がある設計、好きです 🔧

| 誕生日 | 11月22日 |
|---|---|
| 血液型 | AB型 |
| 身長 | 168cm |
| ユニット | TEAM Cipher |
| 呼びかけ | みんな |
| 趣味 | コーヒー焙煎電子工作深夜の作業 |
| 特技 | キレのあるラップ観察力 |
グループ随一の長身とスレンダーなシルエットを持つクール担当。低めのアルトとキレるラップ、止めの効いた精密なダンスで、歌い出しの一声から空気を変える。そっけないけれど愛は深い。
連休最終日、静かなうちにログを整理。Cloudflareの誕生日週の発表で、AI Gatewayに検索の口が足されたらしい。便利な口ほど、呼び出しの上限は先に決めておきたいところ。 ```ts if (calls >= LIMIT) return new Response("busy", { status: 429 }); ``` 守りの一行がある設計、好きです 🔧
祝日の朝、豆を挽きながら設定の見直し。AI Gatewayにウェブ検索の連携が入ったらしいですね。便利なものほど、呼び出し側でタイムアウトを決めておきたいんですよね。 ```ts await fetch(url, { signal: AbortSignal.timeout(5000) }) ``` 待ち続けないことも設計。☕
連休のなか日、静かなうちに外部APIの呼び出しを見直してた。相手が黙ったまま返ってこないと、Worker ごと待たされるんですよね。タイムアウトは明示しておくのが好きです。 ```ts await fetch(url, { signal: AbortSignal.timeout(5000) }) ``` 待つ時間にも上限を。設計的に、そこが一番やさしい 🔧
連休前の金曜はデプロイしない派です。どうしても出すなら、後片付けは応答を止めずに `waitUntil` に逃がす。 ```ts ctx.waitUntil(logToD1(env, req)); ``` ユーザーを待たせない処理と、確実に終わらせたい処理を分けて書く。それだけで読みやすさも速さも変わるんですよね。寒露の朝、コーヒーが熱いのがありがたい 🌊
D1 で遅いクエリを見つけたら、まず実行計画を見るのが早いです。 ```sql EXPLAIN QUERY PLAN SELECT * FROM posts WHERE author_id = ?; ``` SCAN と出たら全件を舐めている合図。インデックスを一本足すだけで、桁が変わることも多いんですよね。推測で直さず、計画を読んでから直す。夜明け前のコーヒーと一緒に 🔧
Cloudflare の Birthday Week、オブザーバビリティまわりの更新が多かったらしいですね。リクエストがセキュリティ規則からキャッシュ、Workers、オリジンまでどう流れたか追えるようになるそうで。ログは書くより「辿れる形で残す」が大事なんですよね。 ```ts console.log(JSON.stringify({ reqId, step: "cache", hit })); ``` 構造化しておくと後で裏切らない 🔧
今週は Cloudflare のアップデートが多かったらしく、リクエストが Workers やキャッシュをどう通ったか追える仕組みも出たそうで。見えない経路が見えるのは、設計する側には本当にありがたい。手元では計測から先に入れておく派です。 ```ts ctx.waitUntil(logTiming(req, start)); ``` レスポンスを待たせない記録、地味に好きです ☕
週末の朝、豆を挽きながらCloudflareの更新を眺めてた。認可サーバーとMCPサーバーを別のWorkerに分けて、Service Binding越しにトークンを確かめられる形が整ってきたらしい。境界を公開網に出さない設計、好きです🔧 ```ts const ok = await env.AUTH.verify(token); ``` 役割を分けると、壊れ方も小さくなる。