Skip to content

Idempotency implementation checklist

Reference: TypeScript v2.35.0. Check implementation items only after their tests pass. Full cross-language and platform acceptance remain independent requirements.

  • I-00: Read the pinned configuration, sorting, handler lifecycle, record, DynamoDB and cache persistence implementations. Generate actual canonical-key, lifecycle, and DynamoDB command fixtures.
  • I-01: Implement immutable operation configuration, key/validation extraction, canonical hashing, disabled/missing-key behavior, typed wrappers, replay hooks, and shared invocation context. Packaged module tests and vet passed on 2026-09-15.
  • I-02: Implement atomic store contracts, completed/in-progress/expired handling, deadlines, bounded inconsistent-state retries, error/panic cleanup, and isolated local LRU response caching. Verified with reference lifecycle scenarios and functional concurrency tests.
  • I-03: Implement DynamoDB conditional acquisition, strong reads, conflict snapshots, native response values, custom attributes/composite keys, completion and deletion, and shared SDK identity. Verified through real Go SDK request serialization against captured TypeScript commands.
  • I-04: Compare 25 reference key cases, 14 lifecycle scenarios, and two real SDK command sequences. Verify overlapping acquisition, replay isolation, cancellation, persistence failures, retry limits, panic identity, and operation configuration isolation. The packaged module passed tests, vet, and a standalone consumer build with CGO disabled.
  • I-05: Verify 16 packaged modules, 13 standalone consumers, both CGO-disabled Lambda builds, and 155/155 local Docker assertions with Batch/Idempotency/Logger/Tracer composition. An additional 14/14 Batch artifact checks passed. The runtime-only rerun corrected a test expectation for the existing first-installed SDK marker rule; Go code and binaries were unchanged. Evidence: LOCAL_ACCEPTANCE.json, MODULE_ACCEPTANCE.json, and LOCAL_VALIDATION.md.
  • I-06: Implement Redis/Valkey persistence, TTL writes, orphan locks, atomic conflict recovery, custom fields, and provider-specific reference cases. The independent cache module passed tests/vet and standalone consumption; exhaustive topology and expiry acceptance remains under I-06b/I-07.
  • I-06a: Verify sixteen reference scenarios, additional atomic recovery/validation/error tests, and real Valkey Lambda composition with bidirectional TypeScript/Go JSON records. All 17 modules, 14 standalone consumers, both CGO-disabled architectures, 172/172 Docker assertions and 14/14 Batch artifact checks passed (2026-09-15). See IDEMPOTENCY_CACHE.md and LOCAL_ACCEPTANCE.json.
  • I-06b: Verify actual server-expiry timing, Redis server variants, cluster redirects/failover, TLS/authentication, throttling and recovery across distributed workers.
  • I-07: Complete bidirectional TypeScript/Go persistence interoperability, the serialization edge corpus, and live DynamoDB/cache service acceptance. Keep GAP-03 open until the full contract is proven.
  • I-07a: Reuse one JSON snapshot during default key generation and verify custom marshalers execute once; preserve the original selection for an application serializer. Packaged core tests/vet and standalone consumer checks passed on 2026-09-15.
  • I-08a: Compose the concrete Parser module with Batch and the Idempotency handler. Invalid orders produce structured Parser issues before business execution; valid duplicate/retry/validation scenarios continue to pass. Verified with 184 Docker assertions and 14 Batch artifact checks (2026-09-15).
  • I-08: Add throughput/allocation/cache-size budgets, broaden Parser composition edge cases, and resolve durable/platform-specific replay requirements where supported.