idempotency-handling

Implement idempotency keys and handling to ensure operations can be safely retried without duplicate effects. Use when building payment systems, APIs with retries, or distributed transactions.

By aj-geddes · 446 installs

npx skills add aj-geddes/useful-ai-prompts --skill idempotency-handling

Source repository · Upstream listing

Idempotency Handling Table of Contents [Overview]( overview) [When to Use]( when to use) [Quick Start]( quick start) [Reference Guides]( reference guides) [Best Practices]( best practices) Overview Implement idempotency to ensure operations produce the same result regardless of how many times they're executed. When to Use Payment processing API endpoints with retries Webhooks and callbacks Message queue consumers Distributed transactions Bank transfers Order creation Email sending Resource creation Quick Start Minimal working example: Reference Guides Detailed implementations in the references/ directory: Guide Contents [Express Idempotency Middleware](references/express idempotency middleware.md) Express Idempotency Middleware [Database Based Idempotency](references/database based idempotency.md) Database Based Idempotency [Stripe Style Idempotency](references/stripe style idempotency.md) Stripe Style Idempotency [Message Queue Idempotency](references/message queue idempotency.md) Message Queue Idempotency Best Practices ✅ DO Require idempotency keys for mutations Store request and response together Set appropriate TTL for idempotency records Validate request body matches stored request Handle concurrent requests gracefully Return same response for duplicate requests Clean up old idempotency records Use database constraints for atomicity ❌ DON'T Apply idempotency to GET requests Store idempotency data forever Skip validation of request body Use non unique idempotency keys Process same request concurrently Change response for duplicate requests