Dead Letter Queue/Poison Task運用
記事状態: 公開 · 最終確認: 2026-10-05
要点
Dead Letter Queue(DLQ)は、繰り返し失敗するmessage/taskを通常処理から隔離するための運用境界です。DLQへ移動したこと自体は、全体の起点 causeの修復、messageの永久保存、外部外部への変更・送信のexactly-onceを意味しません。
現在の判断
Dead Letter Queue(DLQ)は、繰り返し失敗するmessage/taskを通常処理から隔離するための運用境界です。DLQへ移動したこと自体は、全体の起点 causeの修復、messageの永久保存、外部外部への変更・送信のexactly-onceを意味しません。
どこまで当てはまるか
Dead Letter Queue/Poison Task運用
詳しく理解する
ATTEMPT SEMANTICS
delivery/receive countの意味をcross-provider invariantとして扱いません。
Google Cloud Pub/Subのmaximum delivery attemptsはbest-effortであり、設定値どおりの厳密な境界とは限りません。
Amazon SQS、Azure Service Bus、Pub/Sub等でattempt counting、TTL、redrive条件が異なるため、対象product/queue type/バージョンのdocumented semanticsを固定します。
QUARANTINE ENVELOPE
DLQ/quarantine recordには可能な範囲で以下を保持します。
- original task/message ID
- 処理の流れ/実行 ID
- 組織の利用環境/操作主体
- input hashとデータ形式の定義/バージョン
- モデル/提供元 ID
- prompt/ツール/データ形式の定義/policy バージョン
- attempt count
- first/last 失敗 timestamp
- normalized 失敗 class/reason
- raw errorの安全な資料内の該当箇所
- 外部 操作内容 ID/重複実行を防ぐ性質 key
- last known authoritative 外部 状態
- remediation 担当者/状態
秘密情報 tokenや不要なPIIをerror descriptionへ複製しません。
PRODUCT BOUNDARIES
Amazon SQSでは出典 queueのredrive policyとDLQ側redrive allow policyを区別します。DLQ redriveにはSQS操作権限に加え、暗号化構成によってKMS権限が必要です。Standard/FIFOではDLQ移動後のtimestamp/保持期間・保持方針 semanticsも異なります。
Azure Service Busでは通常のDLQとtransfer dead-letter queueを区別します。利用側 processing 失敗とforwarding infrastructure 失敗を同一reasonへ潰しません。DLQは自動cleanupされず、明示的な処理まで残ります。
Google Cloud Pub/Subではdead-letter topicの設定だけでなく、service accountのpublish/ack権限とdead-letter topic側subscriptionを確認します。maximum delivery attemptsはbest-effortです。
Kafka Connectではerrors.tolerance=allで処理継続できても、failed recordの存在が消えるわけではありません。DLQとmetricsを監視し、欠落をsilent 成功として扱いません。
RabbitMQではdead-letter exchangeへのrepublish自体が失敗し得ます。queue typeとpublisher-confirm semanticsを確認し、DLXをlossless archiveと仮定しません。
REDRIVE GATE
redrive前に少なくとも次を確認します。
- 全体の起点 causeが特定されているか。
- 利用側/ツール/データ形式の定義/policy/codeの修正版が配備されているか。
- 認証情報/IAM/KMS/設定が回復しているか。
- original taskが対象としたresource バージョン/実行前の条件がまだ有効か。
- 外部 外部への変更・送信が既に成功していないかauthoritative 結果の照合できるか。
- stable 重複実行を防ぐ性質 key/操作内容 IDを維持できるか。
- redrive destination、batch size、同時実行数、ordering影響が許容されるか。
- 再失敗時のre-dead-letterと停止条件があるか。
全体の起点 cause未修正のmass redriveを行いません。
SIDE EFFECT RECONCILIATION
処理待ち時間の上限やworker crashでは、外部ツール/APIが成功した後に利用側側が失敗と認識する場合があります。
この状態を単純にredriveするとduplicate 外部への変更・送信を作り得ます。redrive前に外部 操作内容 ID、重複実行を防ぐ性質 key、resource 状態/バージョンを照合し、既済みなら再実行せず処理の流れ 状態をreconcileします。
RETENTION AND DISPOSAL
DLQ 保持期間・保持方針を“隔離後N日”と一般化しません。製品・queue type固有のtimestamp/TTL semanticsを確認します。
DLQ depthだけでなくoldest ageと保持期間・保持方針 expiry リスクを監視し、期限前にtriageします。修復不能または不要になったtaskは、削除理由、operator、根拠 資料内の該当箇所、最終状態を記録して扱い・判断します。
セキュリティとプライバシー
DLQは失敗prompt、ツール arguments、customer payload、error traceを蓄積するため、高感度archiveになり得ます。
least privilege、encryption、KMS/IAM、組織の利用環境 isolation、機密情報の削除・伏せ字化、保持期間・保持方針、データの保存地域、削除証跡を通常queueと別に確認します。redrive authorityを通常利用側権限へ無条件に含めません。
OPERATING CHECK
少なくとも、決まった規則に従う poison input、transient 再試行 exhaustion、外部 成功/ack loss、DLQ publish 失敗、missing DLQ subscription、IAM/KMS denial、保持期間・保持方針 expiry、wrong redrive destination、concurrent redrive、re-dead-letter loopをfault injectionします。
DLQ depth/rate/oldest age、失敗 class、再試行 amplification、redrive 成功、re-dead-letter rate、保持期間・保持方針 リスク、operator response timeを監視します。
実装・運用
本項は2026-10-05時点のAmazon SQS、Azure Service Bus、Google Cloud Pub/Sub、Kafka Connect、RabbitMQの現行仕様・利用方法の文書とbounded ローカル環境の fixtureに基づきます。本番環境 queue、Agent task、外部 外部への変更・送信のmutation/redriveは未実施です。
よくある失敗・反証
少なくとも失敗を次へ分けます。
transient/retryable: 処理待ち時間の上限、429、一時5xx、短期提供元 outage等
決まった規則に従う/non-retryable: データ形式の定義 invalid、unsupported ツール バージョン、明示的policy denial等
認可/設定: 認証情報失効、権限不足、KMS/IAM不整合
ambiguous 外部 outcome: ツール/APIが成功した可能性があるがack/response/途中状態の保存地点を失った状態
未確認事項: 根拠なくretryableへ分類しない
再試行 budgetを超えたtransient 失敗と、即時隔離すべき決まった規則に従う 失敗を区別します。
poison input、データ形式の定義 error、malformed モデル/ツール output、policy denial、認証情報失効、権限 loss、提供元 outage、利用側 bug、code/データ形式の定義 drift、要再確認 resource、ambiguous 外部 outcome、duplicate delivery、attempt counter ambiguity、再試行 storm、DLQ publish 失敗、missing subscription、保持期間・保持方針 expiry、PII/秘密情報 leakage、wrong redrive、ordering break、cycle、manual deletion without 監査を想定します。
attempt count・保持期間・保持方針・dead-letter forwarding 安全性を一般化せず、Agent poison taskのquarantine、triage、redrive 確認・承認の条件、外部 side-effect reconciliationを監査可能な運用境界として固定します。
実務での使い方
DLQは失敗prompt、ツール arguments、customer payload、error traceを蓄積するため、高感度archiveになり得ます。
least privilege、encryption、KMS/IAM、組織の利用環境 isolation、機密情報の削除・伏せ字化、保持期間・保持方針、データの保存地域、削除証跡を通常queueと別に確認します。redrive authorityを通常利用側権限へ無条件に含めません。
本項は2026-10-05時点のAmazon SQS、Azure Service Bus、Google Cloud Pub/Sub、Kafka Connect、RabbitMQの現行仕様・利用方法の文書とbounded ローカル環境の fixtureに基づきます。本番環境 queue、Agent task、外部 外部への変更・送信のmutation/redriveは未実施です。
まだ確認できていないこと
- EA-245-UNKNOWN-01
対象broker/実行環境、queue type/バージョン、再試行 budget、DLQ topology、IAM/KMS、保持期間・保持方針、ordering/セッション、task データ形式の定義、モデル/ツール/policy versions、side-effect 状態 API、redrive authority、alert/SLO、data classification/residency、disposal 根拠は未確認です。
根拠資料
この記事には、直接開ける外部出典が登録されていません。出典IDや検証情報は末尾で確認できます。
更新履歴
EA-245-FIRST-20261005: 正式な 監査/publication 対応付け
出典ID・検証情報・機械可読データ
根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。
- 記事ID
- EA-245
- 最終確認日
- 2026-10-05
- 提供元・モデル・プラン・利用環境
- —
- 対象地域
- —
元資料の全文と収録照合記録
PUBLIC_CLAIM
Dead Letter Queue(DLQ)は、繰り返し失敗するmessage/taskを通常処理から隔離するための運用境界です。DLQへ移動したこと自体は、root causeの修復、messageの永久保存、外部side effectのexactly-onceを意味しません。
AI/Agentでは、LLM/provider障害、schema drift、tool/API変更、policy denial、権限、stale resource、deterministic bad inputを同じblind retryへ入れないことが重要です。
FAILURE_CLASSIFICATION
少なくともfailureを次へ分けます。
- transient/retryable: timeout、429、一時5xx、短期provider outage等
- deterministic/non-retryable: schema invalid、unsupported tool version、明示的policy denial等
- authorization/configuration: credential失効、permission不足、KMS/IAM不整合
- ambiguous external outcome: tool/APIが成功した可能性があるがack/response/checkpointを失った状態
- unknown: 根拠なくretryableへ分類しない
retry budgetを超えたtransient failureと、即時隔離すべきdeterministic failureを区別します。
ATTEMPT_SEMANTICS
delivery/receive countの意味をcross-provider invariantとして扱いません。
Google Cloud Pub/Subのmaximum delivery attemptsはbest-effortであり、設定値どおりの厳密な境界とは限りません。
Amazon SQS、Azure Service Bus、Pub/Sub等でattempt counting、TTL、redrive条件が異なるため、対象product/queue type/versionのdocumented semanticsを固定します。
QUARANTINE_ENVELOPE
DLQ/quarantine recordには可能な範囲で以下を保持します。
- original task/message ID
- workflow/run ID
- tenant/principal
- input hashとschema/version
- model/provider ID
- prompt/tool/schema/policy version
- attempt count
- first/last failure timestamp
- normalized failure class/reason
- raw errorの安全なlocator
- external operation ID/idempotency key
- last known authoritative external state
- remediation owner/status
secret tokenや不要なPIIをerror descriptionへ複製しません。
PRODUCT_BOUNDARIES
Amazon SQSではsource queueのredrive policyとDLQ側redrive allow policyを区別します。DLQ redriveにはSQS操作権限に加え、暗号化構成によってKMS権限が必要です。Standard/FIFOではDLQ移動後のtimestamp/retention semanticsも異なります。
Azure Service Busでは通常のDLQとtransfer dead-letter queueを区別します。consumer processing failureとforwarding infrastructure failureを同一reasonへ潰しません。DLQは自動cleanupされず、明示的な処理まで残ります。
Google Cloud Pub/Subではdead-letter topicの設定だけでなく、service accountのpublish/ack権限とdead-letter topic側subscriptionを確認します。maximum delivery attemptsはbest-effortです。
Kafka Connectではerrors.tolerance=allで処理継続できても、failed recordの存在が消えるわけではありません。DLQとmetricsを監視し、欠落をsilent successとして扱いません。
RabbitMQではdead-letter exchangeへのrepublish自体が失敗し得ます。queue typeとpublisher-confirm semanticsを確認し、DLXをlossless archiveと仮定しません。
REDRIVE_GATE
redrive前に少なくとも次を確認します。
- root causeが特定されているか。
- consumer/tool/schema/policy/codeの修正版が配備されているか。
- credential/IAM/KMS/configurationが回復しているか。
- original taskが対象としたresource version/preconditionがまだ有効か。
- external side effectが既に成功していないかauthoritative readbackできるか。
- stable idempotency key/operation IDを維持できるか。
- redrive destination、batch size、concurrency、ordering影響が許容されるか。
- 再失敗時のre-dead-letterと停止条件があるか。
root cause未修正のmass redriveを行いません。
SIDE_EFFECT_RECONCILIATION
timeoutやworker crashでは、外部tool/APIが成功した後にconsumer側が失敗と認識する場合があります。
この状態を単純にredriveするとduplicate side effectを作り得ます。redrive前にexternal operation ID、idempotency key、resource state/versionを照合し、既済みなら再実行せずworkflow stateをreconcileします。
RETENTION_AND_DISPOSAL
DLQ retentionを“隔離後N日”と一般化しません。製品・queue type固有のtimestamp/TTL semanticsを確認します。
DLQ depthだけでなくoldest ageとretention expiry riskを監視し、期限前にtriageします。修復不能または不要になったtaskは、削除理由、operator、evidence locator、最終状態を記録してdispositionします。
SECURITY_AND_PRIVACY
DLQは失敗prompt、tool arguments、customer payload、error traceを蓄積するため、高感度archiveになり得ます。
least privilege、encryption、KMS/IAM、tenant isolation、redaction、retention、data residency、削除証跡を通常queueと別に確認します。redrive authorityを通常consumer権限へ無条件に含めません。
OPERATING_CHECK
少なくとも、deterministic poison input、transient retry exhaustion、external success/ack loss、DLQ publish failure、missing DLQ subscription、IAM/KMS denial、retention expiry、wrong redrive destination、concurrent redrive、re-dead-letter loopをfault injectionします。
DLQ depth/rate/oldest age、failure class、retry amplification、redrive success、re-dead-letter rate、retention risk、operator response timeを監視します。
FAILURE_ENVELOPE
poison input、schema error、malformed model/tool output、policy denial、credential失効、permission loss、provider outage、consumer bug、code/schema drift、stale resource、ambiguous external outcome、duplicate delivery、attempt counter ambiguity、retry storm、DLQ publish failure、missing subscription、retention expiry、PII/secret leakage、wrong redrive、ordering break、cycle、manual deletion without auditを想定します。
IMPLEMENTATION_STATE
本項は2026-10-05時点のAmazon SQS、Azure Service Bus、Google Cloud Pub/Sub、Kafka Connect、RabbitMQの現行documentationとbounded local fixtureに基づきます。production queue、Agent task、external side effectのmutation/redriveは未実施です。
SAFE_WORDING
DLQは失敗message/taskを隔離する運用境界であり、失敗原因の修復やside effectのexactly-onceを自動保証しません。delivery-attempt semantics、retention、dead-letter forwarding、IAM/KMSは製品ごとに異なります。redrive前にroot causeの修正、version/precondition、既済みside effectのreadback/reconciliationを確認し、stable idempotency identityを維持してください。
OPEN_UNKNOWN
対象broker/runtime、queue type/version、retry budget、DLQ topology、IAM/KMS、retention、ordering/session、task schema、model/tool/policy versions、side-effect status API、redrive authority、alert/SLO、data classification/residency、disposal evidenceは未確認です。
STOP_CONDITION
attempt count・retention・dead-letter forwarding safetyを一般化せず、Agent poison taskのquarantine、triage、redrive gate、external side-effect reconciliationを監査可能な運用境界として固定します。
EA-245-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET現行本文の監査・revision対応
- 裏付ける内容
- 現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
- 確認日
- —
- 出典・実験ID
- CANDIDATE-EA245-FIRST-20261005-C2-RESCUE20261013
- 検証箇所
- 1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ · EA_REVISION_LEDGER!A48:U48 · EA-245-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_CANONICAL_APPROVAL_READBACK
- 限界
- 監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
EA-245-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK現行本文の収録照合
- 裏付ける内容
- 公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
- 確認日
- 2026-10-13
- 出典・実験ID
- BODY-SHA256:73b2f7425339ab1c79397690fcff29cee149751bd60c3b263b09fd0334bdc867
- 検証箇所
- content/staging/EA-245.md · 73b2f7425339ab1c79397690fcff29cee149751bd60c3b263b09fd0334bdc867 · EA-245-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_APPROVED_BODY_HASH_MATCH
- 限界
- 本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
- 出典ID
- CANDIDATE-EA245-FIRST-20261005-C2-RESCUE20261013, BODY-SHA256:73b2f7425339ab1c79397690fcff29cee149751bd60c3b263b09fd0334bdc867
- 追跡中のUNKNOWN ID
- EA-245-UNKNOWN-01
- 再確認のきっかけ
- 正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合
機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。
同じ記事IDの機械可読データです。