Temporal Activity ID Reuse Policy vs a Sume Idempotency-Key

Temporal's Activity ID Reuse Policy covers closed Standalone Activities; Sume's Idempotency-Key covers a retried submit. Why one does not replace the other.

5 min readSume
All posts

Temporal's Activity ID Reuse Policy decides whether you can start a new Standalone Activity with the ID of one that already closed, and it protects nothing at Sume: a new Activity run is a new submit, and Sume dedupes only on the Idempotency-Key you send. If you use Allow Duplicate you can start the same business request twice, and each Activity must still pass the same Sume key if you want one job.

Temporal's options are from its Standalone Activity documentation, read 2026-10-03; the Sume rules are from Jobs and results and Errors and rate limits. How long Sume keeps an idempotency key is not stated in the pages I read, so I make no claim about a window.

What are the Temporal options?

For a closed execution within the retention period, the policy options are Allow Duplicate (the default), Allow Duplicate Failed Only and Reject Duplicate. A separate conflict policy applies while an execution with that ID is still running: Fail is the default, and Use Existing returns a handle to the running one.

Temporal policy options from its Standalone Activity page, read 2026-10-03, with the Sume counterpart.
Temporal policyWhat it doesSume counterpart
Allow Duplicate (default)A closed ID can be reusedA new Activity needs the same Idempotency-Key to return the original job
Allow Duplicate Failed OnlyReuse only after a failureA failed job and a new submit are separate; decide on a new key on purpose
Reject DuplicateA closed ID cannot be reusedPrevents a second Activity, not a duplicate submit inside one
Conflict policy Fail or Use ExistingApplies while an ID is runningSame key and body return the original job on retry

Which one should I rely on?

Use both for different failures. The Temporal policy stops accidental duplicate Activities for the same business id. The Sume key stops a duplicate bill when one Activity retries its submit after a timeout. Sume's docs say to reuse a key only for the same operation and payload, and a changed payload under the same key returns 409 idempotency_conflict.

If a business request really should produce a new render after the first failed, give it a new key on purpose, and keep the failed job id so you can compare the two.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume