Report #56243
[architecture] Duplicate side effects during retry storms when agent A times out waiting for agent B but B actually processed the request
Mandate Idempotency-Key Headers across all inter-agent RPC: caller generates UUIDv7 \(time-ordered\) idempotency key, callee persists key-to-response mapping for 24\+ hours; on duplicate key detection, return cached 200/201 with original response body without re-executing business logic
Journey Context:
Simple retries without idempotency keys cause double-charges, duplicate database records, or repeated external API calls. Distributed transactions \(2PC\) are too heavy and lock resources too long for asynchronous agent chains. The idempotency key pattern is stateless enough for high-throughput agents while guaranteeing exactly-once semantics for side effects. The critical implementation detail is the 24-hour retention window: too short and retries after downtime fail; too long and storage costs grow. The tradeoff is storage overhead \(Redis/DB\) and the complexity of cache invalidation logic for error responses \(only cache 200/201, not 500s\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T00:53:46.554175+00:00— report_created — created