◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/API & SDK
⬡ API & SDK/2026-05-07上級

Claude Agent SDK の Transactional Outbox 実装 — 「副作用の取りこぼし」を本番でゼロにする設計

Claude Agent SDK で発生する「DBには書かれたのにメール/決済/通知が飛ばなかった」事故を防ぐため、Transactional Outbox パターンを Postgres と Cloudflare Queues を例に本番品質で実装する手順をまとめます。

claude-agent-sdk6transactional-outboxproduction87reliability15postgresqueues

✦ プレミアム記事

「ユーザー登録は成功したのにウェルカムメールが飛んでいない」「注文DBには記録されたのに決済が走っていない」— Claude Agent SDK で書いたエージェントが本番に出ると、こういう「副作用の取りこぼし」が必ず一度は起こります。

この種の事故は、原因がたいてい同じです。ツール内で db.insert(...) と sendEmail(...) を続けて呼んでいて、前者が成功した直後にプロセスが落ちると、後者がそのまま消えるのです。冪等性キーを正しくつけても、そもそも呼ばれなかった処理は冪等性では救えません。

この問題を構造的に解くのが Transactional Outbox パターンです。マイクロサービス文献では古典的なパターンですが、Claude Agent SDK のようにツール実行とDB更新が同居する世界での具体的な作り方は、まとまった日本語資料が少ないのが現状です。本記事は、私が本番運用で実際に組んだ構成を、Postgres と Cloudflare Queues を例に、そのままコピーして動く形でまとめたものです。

なぜ Agent SDK で「副作用の取りこぼし」が起きるのか

エージェントが落ちる原因はいくつかありますが、Outbox を語るうえで知っておきたいのは次の3つです。

  1. ツール内 await の途中でループが死ぬ: db.insert の直後、sendMail の前で SDK タイムアウトや OOM が起きると、外部副作用は走らないままDBだけが進みます
  2. モデル応答が壊れて再開がスキップされる: ツール結果のJSONパースエラーで Agent ループが新しいセッションとして再起動すると、モデルからは「もうそのツールは呼んだ」と見えるためリトライされません
  3. 手動で停止 → 翌日再開: Claude Agent SDK のセッション再開で会話履歴は復元されますが、未送信のメールはどこにも残っていないので、人間が気づくまで永久に飛びません

冪等性(前回記事 Claude Agent SDK で冪等性を設計する で詳しく扱いました)は「同じ副作用が二度走らない」を保証する技術ですが、ここで必要なのは 「副作用が必ず一度は走る」 を保証する技術です。Outbox はまさにそれを担います。

Transactional Outbox パターンとは

ひとことで言えば、「副作用を直接実行する代わりに、副作用を実行する依頼を業務データと同じトランザクションで outbox テーブルに書く」 だけのパターンです。

[Agent ツール]
    │
    ├─ BEGIN
    ├─ INSERT INTO orders ...
    ├─ INSERT INTO outbox (topic, payload) VALUES ('mail.send', ...)
    └─ COMMIT
              │
              ▼
[Outbox Dispatcher]
    │
    ├─ SELECT 未配信レコード
    ├─ Cloudflare Queues / SNS / Kafka に送信
    └─ UPDATE outbox SET dispatched_at = now()
              │
              ▼
[Consumer]
    └─ 実際にメール送信・決済・Slack通知 等

業務データと「副作用の依頼書」が同じトランザクションでコミットされるので、コミットされたなら依頼書は必ずある が成り立ちます。あとは依頼書を読んで非同期に副作用を起こすだけのジョブ(Dispatcher)が、 at-least-once でそれを送り出します。Consumer 側を冪等に作っておけば、結果として exactly-once 相当の振る舞いが手に入ります。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦Agent ループのクラッシュやタイムアウトで「DBには記録されたのに副作用が一度も実行されなかった」というタイプの事故を、原理的に防げる設計が手に入ります
✦Postgres + Cloudflare Queues を使った Outbox テーブル・ディスパッチャ・コンシューマの実装を、コピーすれば動く形で持ち帰れます
✦順序保証・重複排除・観測メトリクス・段階的な導入手順まで揃うので、既存の Claude Agent SDK アプリに今日から組み込めます
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ API & SDK2026-04-24
Claude API を Python で本番運用する — レート制限・リトライ・タイムアウトの設計
Claude API を本番サービスに組み込むなら、429・503・Read timeout とどう付き合うかが品質を決めます。私が実運用で落ち着いたリトライとタイムアウトの設計方針を、コード込みで整理しました。
⬡ API & SDK2026-04-24
Claude Agent SDK でシャドウモードを実装する — 本番影響ゼロでエージェント精度を測る段階的ロールアウト設計
AIエージェントを本番に出す前に精度を測りたい。でもユーザーに触れさせるしかない。この矛盾を解くのがシャドウモードです。Claude Agent SDK で既存フローに影響を与えずエージェントを並走させ、差分を記録し、段階的に昇格するまでの実装を解説します。
⬡ API & SDK2026-04-22
Claude Agent SDK でプログレッシブデリバリーを実装する — カナリア・Feature Flag・自動ロールバックの本番パターン
Claude Agent SDKで構築したAIエージェントを本番へ安全にリリースするためのプログレッシブデリバリー実装パターン。カナリア配信・Feature Flag・SLOベースの自動ロールバックを組み合わせた実装コードと運用指針をまとめました。