CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/api-idempotency

Idempotent API design — safe retries for POST endpoints, idempotency keys,

93

10.00x
Quality

90%

Does it follow best practices?

Impact

100%

10.00x

Average score across 4 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Evaluation results

100%

60%

User Account Registration Endpoint

Criteria
Without context
With context

Client sends idempotency key

0%

100%

Server checks for duplicate requests

0%

100%

Submit button disabled during request

100%

100%

Button re-enabled in finally block

100%

100%

Database unique constraint on idempotency key

0%

100%

Duplicate handled gracefully

0%

100%

Non-duplicate errors not swallowed

100%

100%

5xx errors allow retry

100%

100%

100%

100%

Checkout Page for an Online Store

Criteria
Without context
With context

Idempotency-Key header sent by client

0%

100%

Server checks idempotency key

0%

100%

Submit button disabled during request

0%

100%

Button re-enabled in finally block

0%

100%

Server-side duplicate prevention

0%

100%

5xx errors not cached

0%

100%

TTL on cached entries

0%

100%

100%

100%

Order Creation API for a Food Delivery App

Criteria
Without context
With context

Idempotency-Key header read

0%

100%

Cache lookup before processing

0%

100%

Response stored after processing

0%

100%

Lock key as processing

0%

100%

409 Conflict for concurrent duplicates

0%

100%

5xx errors not cached

0%

100%

TTL on cached entries

0%

100%

Cached status code preserved

0%

100%

100%

100%

Payment Processing Endpoint

Criteria
Without context
With context

Idempotency key accepted

0%

100%

UNIQUE constraint on idempotency key

0%

100%

Duplicate returns existing record

0%

100%

Non-duplicate errors re-thrown

0%

100%

Processing state tracked

0%

100%

409 or retry for concurrent duplicates

0%

100%

5xx errors not cached

0%

100%

schema.sql present with idempotency column

0%

100%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents