← Lesson
Idempotency Keys
Joeven
Run
Reset
Python loads on first run
def key(job_id, step_id, tool): return job_id + ":" + str(step_id) + ":" + tool def apply_write(ledger, k, cents): if k in ledger: return {"ok": True, "duplicate": True, "cents": ledger[k]} ledger[k] = cents return {"ok": True, "duplicate": False, "cents": cents} ledger = {} k = key("job_17", 3, "refund") print("first", apply_write(ledger, k, 1999)) print("retry", apply_write(ledger, k, 1999)) print("other step", apply_write(ledger, key("job_17", 4, "refund"), 1999)) print("ledger size", len(ledger))
Run to execute this in your browser. Nothing is sent to a server.