Re:Launch HN: Defer (YC W23) – Zero-infrastructure backgroun...
by gearnode on Friday March 10, 2023 @02:06PM
(#35099350)
Completely agree with you on the importance of idempotency. We will release our implementation shortly with a pattern close to the following:
``` const somethingThatMayHaveBeenCalledBefore = idempotent(myFunc, txnref); const result = await somethingThatMayHaveBeenCalledBefore(params); ```
You shouldn't need to first do a check to see if the task already exists using a different api, and then choose whether or not to run a new task.
At least this is my preference.. a-la Durable Objects.
If you don't specify a custom unique id when calling the task it would then be treated as a task that can (and would make sense to be) run multiple times (i.e. not idempotent).