Skip to content

A server to enable request idempotency.

License

Notifications You must be signed in to change notification settings

checkr/idempotent-requests

Repository files navigation

CI workflow Release workflow

Idempotent Requests

Idempotent Requests Server provides API to allocate and record a captured request. It follows behaviors described in IETF draft for standardized Idempotency-Key header .

Contract

API contract

MongoDB access pattern

More details on MongoDB access pattern

Idempotent Requests Client

We have implemented a client in a form of a Kong Gateway Plugin - idempotent-requests.

Configuration

Config Required Default Explanation
MONGODB_URI yes mongodb://root:password123@localhost:27017 URI to connect to MongoDB
OPENTRACING_ENABLED no true Enable opentracing
OPENTRACING_TRACER_IMPLEMENTATION no datadog Use Datadog tracer implementation

Example topology

This example topology relies on Kong Gateway to intercept client requests. A Kong Plugin acts as a client to Idempotent Requests Server.

Data flow

data_flow

Sequence

Source

Running Integration Tests Locally

docker-compose -f docker-compose.yml \
  -f docker-compose.server.yml \
  -f docker-compose.integration.yml \
  up --exit-code-from integration-test