A financial processing API receives retried client requests after timeouts. An accepted request must create at most one order, even if the response is lost. Which design is best?

Published
  1. Disable all database conditions and trust the client timeout value.
  2. Use a stable idempotency key and atomically record acceptance with the order state.
  3. Rely on HTTP retries being delivered exactly once.
  4. Generate a new order ID on every retry and deduplicate reports later.

Comments — 0