本文へスキップ

AI運用の判断と根拠を引く

トップへ戻る

Transactional Outbox/Inbox × Agent

用語・参照用語・参照公式仕様のみ公式仕様のみ現行現行として扱う

記事状態: 公開 · 最終確認: 2026-10-05

要点

Agentがbusiness 状態を更新し、その結果をイベント/messageとして別システムへ通知する場合、DB commit→broker publishの二段処理を成功前提にしません。business 状態とoutbox イベントを同じローカル環境の transactionへ閉じ、relayがcommit済みoutboxを非同期publishします。Outboxは提供側側dual-write lossを抑えるpatternでありduplicate deliveryをなくす仕組みではありません。利用側側にはInbox/Idempotent 利用側を置き、duplicate 記述・判断とbusiness mutationを可能な限り同じtransactionで確定します。

現在の判断

Agentがbusiness 状態を更新し、その結果をイベント/messageとして別システムへ通知する場合、DB commit→broker publishの二段処理を成功前提にしません。business 状態とoutbox イベントを同じローカル環境の transactionへ閉じ、relayがcommit済みoutboxを非同期publishします。Outboxは提供側側dual-write lossを抑えるpatternでありduplicate deliveryをなくす仕組みではありません。利用側側にはInbox/Idempotent 利用側を置き、duplicate 記述・判断とbusiness mutationを可能な限り同じtransactionで確定します。

どこまで当てはまるか

Transactional Outbox/Inbox × Agent

詳しく理解する

PRODUCER TRANSACTION

business mutationとoutbox rowを一ローカル環境の transactionでcommitします。outboxにはimmutable event_id、aggregate_id、aggregate_version/sequence、event_type、schema_version、payload、監査 correlationを持たせます。以前の状態へ戻す操作時にイベントだけpublishせず、business 状態だけcommitしてイベントを後生成する設計も避けます。

RELAY BOUNDARY

relayはpollingまたはtransaction-log/CDC。publish後途中状態の保存地点前crashで再publishし得るためone-publishを成功条件にしません。SKIP LOCKED等はqueue-like競合回避には使えてもstrict global ordering/consistent snapshot証明にはしません。

EVENT ID AND ORDERING

event_idはduplicate判定、aggregate_id+sequence/バージョンは同一aggregateのorder/gap/要再確認検出。timestampだけをstrict order根拠にせず、cross-partition/cross-source global orderを仮定しません。

CONSUMER INBOX

利用側はevent_idをInboxへ登録します。duplicate checkとbusiness mutationを別transactionに分けず、可能ならunique 記述・判断とmutationを同一transaction/atomic conditional 書込みでcommitします。duplicate redeliveryではmutationを再実行しません。

BROKER EXACTLY ONCE BOUNDARY

broker/stream processorのexactly-once semanticsを外部システムへ拡張しません。別DB、payment、email、SaaS API、physical actionにはstable 重複実行を防ぐ性質 key、resource 実行前の条件、状態 query/reconciliationを別途適用します。

CDC AND DEBEZIUM

CDCはpollingを減らす一方、接続機能 設定/offset/snapshot/restart/データ形式の定義/lag/topic 処理先の振り分けをoperational 状態として持ちます。outbox以外のheartbeat/データ形式の定義/transaction 付随情報へ誤ってtransformを適用しないよう適用範囲を固定します。

データ形式の変更と互換性

delivery reliabilityとpayload compatibilityを分離。schema_versionと提供側/利用側 条件・契約 testを保持します。

セキュリティとプライバシー

message possessionを認可とみなしません。組織の利用環境/操作主体/action/対象 出典・来歴を保持し、必要な現在の policy/実行前の条件を利用側で確認します。

RETENTION AND REPLAY

outbox/inbox cleanupは最大replay/reconciliation windowより短くしません。DLQ replay時は現在のbusiness 状態/データ形式の定義/認可を再評価します。

AGENT BOUNDARY

LLM生成ツール callや自然言語の「送信済み」をcommit 根拠にしません。authoritative commitはtransaction 状態、outbox/inbox、downstream 操作内容 ID、結果の照合/reconciliationから判定します。

OPERATING CHECK

提供側 以前の状態へ戻す操作、publish後relay crash、利用側 commit後ack loss、concurrent relay、duplicate、sequence gap、CDC restart、poison/DLQ、保持期間・保持方針 expiry、外部 SaaS 成功後ローカル環境の 失敗をfault injectionし、lost-event/duplicate-publish/duplicate-side-effect/relay lag/sequence-gap/reconciliation/DLQ ageを別評価指標化します。

実装・運用

2026-10-05時点のAWS、Debezium、Kafka、PostgreSQL、independent pattern referencesとbounded SQLite fixtureに基づきます。本番環境 broker/CDC/ツール mutationは未実施です。

よくある失敗・反証

  • naive dual 書込み、relay duplicate、non-atomic inbox、イベント collision、sequence gap、multi-producer race、CDC lag/restart、データ形式の定義 incompatibility、poison/late replay、premature cleanup、組織の利用環境 collision、要再確認 認可、payload leakage、external-side-effect ambiguity、再試行 amplification。

  • Outboxをexactly-once神話へ拡張せず、提供側 transaction、relay、利用側 inbox、外部 外部への変更・送信、ordering/データ形式の定義/保持期間・保持方針/authの境界を固定します。

実務での使い方

  • 2026-10-05時点のAWS、Debezium、Kafka、PostgreSQL、independent pattern referencesとbounded SQLite fixtureに基づきます。本番環境 broker/CDC/ツール mutationは未実施です。

まだ確認できていないこと

  • EA-243-UNKNOWN-01

    対象Agent 実行環境、DB、broker、CDC/relay、バージョン、isolation、ordering、データ形式の定義 registry、保持期間・保持方針、DLQ/replay、組織の利用環境/auth、外部 ツール 重複実行を防ぐ性質、reconciliation、SLO、residency/監査 保持期間・保持方針は未確認です。

根拠資料

この記事には、直接開ける外部出典が登録されていません。出典IDや検証情報は末尾で確認できます。

更新履歴

  1. EA-243-FIRST-20261005: 正式な 監査/publication 対応付け

出典ID・検証情報・機械可読データ

根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。

記事ID
EA-243
最終確認日
2026-10-05
提供元・モデル・プラン・利用環境
—
対象地域
—
元資料の全文と収録照合記録
PUBLIC_CLAIM

Agentがbusiness stateを更新し、その結果をevent/messageとして別systemへ通知する場合、DB commit→broker publishの二段処理を成功前提にしません。business stateとoutbox eventを同じlocal transactionへ閉じ、relayがcommit済みoutboxを非同期publishします。Outboxはproducer側dual-write lossを抑えるpatternでありduplicate deliveryをなくす仕組みではありません。consumer側にはInbox/Idempotent Consumerを置き、duplicate claimとbusiness mutationを可能な限り同じtransactionで確定します。

PRODUCER_TRANSACTION

business mutationとoutbox rowを一local transactionでcommitします。outboxにはimmutable event_id、aggregate_id、aggregate_version/sequence、event_type、schema_version、payload、audit correlationを持たせます。rollback時にeventだけpublishせず、business stateだけcommitしてeventを後生成する設計も避けます。

RELAY_BOUNDARY

relayはpollingまたはtransaction-log/CDC。publish後checkpoint前crashで再publishし得るためone-publishを成功条件にしません。SKIP LOCKED等はqueue-like競合回避には使えてもstrict global ordering/consistent snapshot証明にはしません。

EVENT_ID_AND_ORDERING

event_idはduplicate判定、aggregate_id+sequence/versionは同一aggregateのorder/gap/stale検出。timestampだけをstrict order根拠にせず、cross-partition/cross-source global orderを仮定しません。

CONSUMER_INBOX

consumerはevent_idをInboxへ登録します。duplicate checkとbusiness mutationを別transactionに分けず、可能ならunique claimとmutationを同一transaction/atomic conditional writeでcommitします。duplicate redeliveryではmutationを再実行しません。

BROKER_EXACTLY_ONCE_BOUNDARY

broker/stream processorのexactly-once semanticsを外部systemへ拡張しません。別DB、payment、email、SaaS API、physical actionにはstable idempotency key、resource precondition、status query/reconciliationを別途適用します。

CDC_AND_DEBEZIUM

CDCはpollingを減らす一方、connector configuration/offset/snapshot/restart/schema/lag/topic routingをoperational stateとして持ちます。outbox以外のheartbeat/schema/transaction metadataへ誤ってtransformを適用しないようscopeを固定します。

SCHEMA_EVOLUTION

delivery reliabilityとpayload compatibilityを分離。schema_versionとproducer/consumer contract testを保持します。

AUTHORIZATION_AND_TENANCY

message possessionをauthorizationとみなしません。tenant/principal/action/target provenanceを保持し、必要なcurrent policy/preconditionをconsumerで確認します。

RETENTION_AND_REPLAY

outbox/inbox cleanupは最大replay/reconciliation windowより短くしません。DLQ replay時は現在のbusiness state/schema/authorizationを再評価します。

AGENT_BOUNDARY

LLM生成tool callや自然言語の「送信済み」をcommit evidenceにしません。authoritative commitはtransaction state、outbox/inbox、downstream operation ID、readback/reconciliationから判定します。

OPERATING_CHECK

producer rollback、publish後relay crash、consumer commit後ack loss、concurrent relay、duplicate、sequence gap、CDC restart、poison/DLQ、retention expiry、external SaaS success後local failureをfault injectionし、lost-event/duplicate-publish/duplicate-side-effect/relay lag/sequence-gap/reconciliation/DLQ ageを別metric化します。

FAILURE_ENVELOPE

naive dual write、relay duplicate、non-atomic inbox、event collision、sequence gap、multi-producer race、CDC lag/restart、schema incompatibility、poison/late replay、premature cleanup、tenant collision、stale authorization、payload leakage、external-side-effect ambiguity、retry amplification。

IMPLEMENTATION_STATE

2026-10-05時点のAWS、Debezium、Kafka、PostgreSQL、independent pattern referencesとbounded SQLite fixtureに基づきます。production broker/CDC/tool mutationは未実施です。

SAFE_WORDING

Transactional Outboxはproducer側のbusiness stateとevent記録をlocal transactionへ閉じますがduplicate deliveryを排除しません。consumer側Inbox/Idempotent Consumer、event identity、ordering/version、schema compatibility、replay window、authorization、外部副作用のidempotency/reconciliationを別境界として設計してください。

OPEN_UNKNOWN

対象Agent runtime、DB、broker、CDC/relay、version、isolation、ordering、schema registry、retention、DLQ/replay、tenant/auth、external tool idempotency、reconciliation、SLO、residency/audit retentionは未確認です。

STOP_CONDITION

Outboxをexactly-once神話へ拡張せず、producer transaction、relay、consumer inbox、external side effect、ordering/schema/retention/authの境界を固定します。

  • EA-243-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET

    現行本文の監査・revision対応

    裏付ける内容
    現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
    確認日
    —
    出典・実験ID
    CANDIDATE-EA243-FIRST-20261005-C2-RESCUE20261013
    検証箇所
    1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ · EA_REVISION_LEDGER!A46:U46 · EA-243-FIRST-20261005
    適用範囲
    —
    出典・来歴
    CURRENT_CANONICAL_APPROVAL_READBACK
    限界
    監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
  • EA-243-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK

    現行本文の収録照合

    裏付ける内容
    公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
    確認日
    2026-10-13
    出典・実験ID
    BODY-SHA256:f9d4316ac39799220d2164d259bf6bf9475f1ac245f53fb9a1bcb8ac2f448e35
    検証箇所
    content/staging/EA-243.md · f9d4316ac39799220d2164d259bf6bf9475f1ac245f53fb9a1bcb8ac2f448e35 · EA-243-FIRST-20261005
    適用範囲
    —
    出典・来歴
    CURRENT_APPROVED_BODY_HASH_MATCH
    限界
    本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
出典ID
CANDIDATE-EA243-FIRST-20261005-C2-RESCUE20261013, BODY-SHA256:f9d4316ac39799220d2164d259bf6bf9475f1ac245f53fb9a1bcb8ac2f448e35
追跡中のUNKNOWN ID
EA-243-UNKNOWN-01
再確認のきっかけ
正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合

機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。

    同じ記事IDの機械可読データです。