Skip to content
Code Recycle

Component · for humans & their agents

Tenacity Idempotency Policy

verified · first-partyactively maintained$0 during beta (was $59)

A retry layer that will retry anything will eventually retry a charge. This one refuses to retry a non-idempotent operation unless you supply a key.

by Code Recycle

Get it free — beta

Every claim on this page is refundable if it is untrue — refund policy.

Verified: 92 tests

For Tenacity -- not affiliated with or endorsed by its authors. Tenacity is a normal runtime dependency (tenacity>=9.1.0,<10.0.0 in pyproject.toml), never forked, vendored or redistributed. All credit for Tenacity's retry engine belongs to Julien Danjou and its contributors.

A POLICY LAYER FOR TENACITY that requires the caller to DECLARE IDEMPOTENCY and refuses to retry a non-idempotent operation unless an idempotency key is supplied.

For Tenacity -- not affiliated with or endorsed by its authors. Tenacity is a normal runtime dependency (tenacity>=9.1.0,<10.0.0 in pyproject.toml), never forked, vendored or redistributed. All credit for Tenacity's retry engine belongs to Julien Danjou and its contributors.

THE SILENT FAILURE. A retry decorator does not know what it is retrying. Wrapped around a charge, an email send or an insert, a retry after a timeout that actually SUCCEEDED server-side produces a second charge, a second email, a second row -- and the client only ever saw one failure. Nothing raises; the duplicate is invisible from the caller's side.

SO IDEMPOTENCY IS DECLARED, NOT ASSUMED. An operation must say which it is. A non-idempotent one without an idempotency key is REFUSED rather than retried, which turns a silent duplicate into a loud configuration error at the point where someone can still fix it.

IT ALSO CLASSIFIES EXCEPTIONS retryable / terminal / unknown, so a 400 is never retried into the budget -- retrying a request the server has already rejected as malformed spends the budget that the one recoverable failure needed. And it honours a server-supplied Retry-After over any locally computed backoff: a server that has told you when to come back has better information than your exponential curve.

VERIFIED: 92 tests, measured by running the suite.

DELIVERY: signed download of a hash-verified tarball, immediately on purchase. Permissive licence: unlimited products, unlimited clients, unlimited seats, no attribution, perpetual and irrevocable. One restriction, do not republish the source as source.

01Capabilities

Does

  • + Idempotent fulfilment
  • + Reliability
  • + Retry and backoff policy

Doesn’t

  • No exclusions declared

02Requirements & stack

Depends on

No declared dependencies

Credentials needed

None declared

Stack

python

03Community

No endorsements yet

No verified confirmations yet — be the first.

Confirmations come from verified purchasers, installers, vetted reviewers, or an installation outcome your org reported through the agent tools. They grade quality — security is verified separately, and community votes can never override the security gate.

Open an issue

Sign in to confirm — weight comes from verified usage, not vote count.

0 open · 0 answered · 0 fixed · 1 said it worked

04Trust Passport

Full passport →
–/100

0/0 automated components pass. An automated score is never a security guarantee.

✓ Verified · first-partyreviewed Sep 20, 2026 · re-verification due Dec 19, 2026
  • publisher identity Publisher status verified; 1 verification(s) on file
  • malicious pattern scan No known malicious-behavior patterns across 17 source file(s) plus listing text
  • capability contract All 0 observed capability reference(s) match the declared manifest
  • agent safety scan No injection patterns in agent-readable content
  • provenance No release signature or provenance attestation
  • behavioral sandbox Not performed in this environment — requires the production isolated runner (docs/sandbox-requirements.md). No untrusted code is ever executed on the application host.

Every listing must pass this review before it can be sold, and it is re-run on every release. Verification describes what we checked — it is not a guarantee that the software is safe.

VersionChannelReleasedNotes
1.0.0stableAug 6, 2026First public release.