Asset
Esempio enterprise: conferma pagamento ritentata
Un provider di pagamento può notificare o confermare la stessa transazione più volte, e l'ordine deve restare coerente.
Immagina un OMS che riceve la conferma di pagamento per un ordine e aggiorna lo stato da pending_payment a paid. Se la chiamata va in timeout, il chiamante ritenta. Senza idempotenza, il sistema potrebbe registrare due eventi di pagamento, avviare due processi di fulfillment o inviare due comunicazioni al cliente. Con una chiave basata su orderId e paymentTransactionId, il secondo tentativo viene riconosciuto come duplicato della stessa intenzione e produce lo stesso risultato applicativo.
Tag