No English page yet. Showing the Japanese source.
Dead Letter Queue/Poison Task運用
記事状態: 公開 · 最終確認: 2026-10-05
要点
Dead Letter Queue(DLQ)は、繰り返し失敗するmessage/taskを通常処理から隔離するための運用境界です。DLQへ移動したこと自体は、root causeの修復、messageの永久保存、外部side effectのexactly-onceを意味しません。
現在の判断
Dead Letter Queue(DLQ)は、繰り返し失敗するmessage/taskを通常処理から隔離するための運用境界です。DLQへ移動したこと自体は、root causeの修復、messageの永久保存、外部side effectの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/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します。
セキュリティとプライバシー
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を監視します。
実装・運用
本項は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は未実施です。
よくある失敗・反証
少なくとも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を区別します。
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を想定します。
attempt count・retention・dead-letter forwarding safetyを一般化せず、Agent poison taskのquarantine、triage、redrive gate、external side-effect reconciliationを監査可能な運用境界として固定します。
実務での使い方
DLQは失敗prompt、tool arguments、customer payload、error traceを蓄積するため、高感度archiveになり得ます。
least privilege、encryption、KMS/IAM、tenant isolation、redaction、retention、data residency、削除証跡を通常queueと別に確認します。redrive authorityを通常consumer権限へ無条件に含めません。
本項は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は未実施です。
まだ確認できていないこと
- EA-245-UNKNOWN-01
対象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は未確認です。
根拠資料
この記事には、直接開ける外部出典が登録されていません。出典IDや検証情報は末尾で確認できます。
更新履歴
EA-245-FIRST-20261005: canonical audit/publication binding
出典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
- 再確認のきっかけ
- canonical revision/publication state change · body artifact hash change · source currentness change · new contradiction or implementation readback
機械検査: 通過 — Automated validation does not guarantee accuracy or authorize execution.
同じ記事IDの機械可読データです。