{
  "id": 13257255,
  "title": "Your AI agent re-sends the email on retry: an outbox for side effects",
  "url": "https://urgent.news/2026/10/09/your-ai-agent-re-sends-the-email-on-retry-an-outbox-for-side-effects",
  "topic": "ai",
  "section": "AI",
  "published": "2026-10-09T23:31:22.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/bzdvdn/your-ai-agent-re-sends-the-email-on-retry-an-outbox-for-side-effects-13id"
  },
  "original_language": "en",
  "account": "Agent frameworks typically model a step as performing some work, then calling tools. This works until it doesn't. When you add a retry, crash-resume, or deterministic replay, the same step runs again, firing side effects multiple times. The issue lies in executing I/O inside an agent step. To resolve this, the outbox design records the intent as state (committed atomically with everything else) and lets the runtime deliver it once, after the commit. This prevents re-sending, re-running, or replaying the effects. The outbox splits the intent and delivery into separate steps: the produce records the intent as state, while the runtime delivers the committed-but-undelivered intents after the commit. This approach prevents duplicate effects in retries, parallel producers, and replays. Using the outbox, you can have a clear separation between intent and delivery in your agent framework.",
  "summary": "Most agent frameworks model a step as \"do some work, then call the tools.\" So the tool call — send the email, call the webhook, charge the card — happens inside the run, somewhere in the middle of your graph. That works until it doesn't. The moment you add a retry, a crash-resume, or a deterministic replay, the same step runs again, and the side effect fires again. State you can version and…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}