Skip to main content

build-a-durable-idempotency-store

Build a durable idempotency store with scoped keys, request identity, atomic claims, outcome receipts, expiry, conflict handling, and recovery. Use when retried operations must not repeat side effects.

ソース情報

リポジトリ
protosphinx/sphinxstack
ソースの最終更新活動
2026年7月29日 13:55
検出された SKILL.md の言語
英語
スター
2
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
2 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
build-a-durable-idempotency-store
category
code
description
Build a durable idempotency store with scoped keys, request identity, atomic claims, outcome receipts, expiry, conflict handling, and recovery. Use when retried operations must not repeat side effects.
# build-a-durable-idempotency-store ## When to use - Use for payments, provisioning, messages, imports, or consequential mutation. - Do not reuse keys across tenants, operations, or semantically different requests. ## Procedure 1. Define tenant, operation, key, request fingerprint, scope, and retention. 2. Atomically create pending ownership or return the existing state. 3. Reject key reuse with a different request fingerprint. 4. Record durable completed outcome before releasing ownership. 5. Handle crash, timeout, lease recovery, unknown external outcome, and manual reconciliation. 6. Encrypt sensitive results and bound storage, expiry, and abuse. 7. Test concurrency, duplicate, mismatch, crash windows, expiry, and disaster recovery. ## Failure plan - Keep ambiguous external outcomes pending until reconciled rather than repeat them. ## Worked example A payment timeout retains an indeterminate receipt and checks the provider before any retry. ## Done - An idempotency implementation records scope, fingerprint, states, atomicity, outcomes, retention, security, and reconciliation - Concurrent, mismatch, crash, timeout, external-unknown, expiry, tenant, and restore tests verify exactly-one effect
GitHubで見る