Accept an idempotency key from the client and store the result keyed by (user, key). If the same key is sent again, return the stored result instead of creating duplicates.