You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I kept running into the same failure mode while building Work SDK: an issue tracker commits a comment, the connection times out, and the job retries. You either duplicate the comment or give up and risk losing the intended write.
The boundary I ended up with is:
same idempotency key + same normalized intent -> replay the stored receipt
same key + different intent -> conflict before a provider call
changed item revision -> throw away the stale plan and prepare again
The part I am still thinking about: when a provider has no native idempotency primitive, how much reconciliation should live in the adapter versus the caller's job system? I would be interested in concrete failure cases from real automations.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
I kept running into the same failure mode while building Work SDK: an issue tracker commits a comment, the connection times out, and the job retries. You either duplicate the comment or give up and risk losing the intended write.
The boundary I ended up with is:
I wrote down the design and how it differs across GitHub, GitLab, Linear, Jira, and Azure DevOps:
https://work-sdk.vercel.app/guides/agent-safe-work-tracker-writes?src=github-discussion
The part I am still thinking about: when a provider has no native idempotency primitive, how much reconciliation should live in the adapter versus the caller's job system? I would be interested in concrete failure cases from real automations.
All reactions