5. Affidabilità dei pagamenti: "Come è stato risolto il problema dell'idempotenza in gRPC?"
Obiettivo dell'intervistatore: Pagamenti — l'area più pericolosa per i duplicati (Double Spending).
Domanda possibile:
"La richiesta di pagamento è passata tramite gRPC ma è fallita a causa del timeout (DEADLINE_EXCEEDED). I soldi sono stati dedotti — sconosciuto. Cosa fa il modulo di pagamento?"
Come rispondere:
"In un contesto di transazione finanziaria, ogni richiesta ripetuta deve avere una Chiave di Idempotenza:
1. Nei metadati della richiesta gRPC (metadata=((‘x-idempotency-key’, key_uuid),)) abbiamo sempre trasmesso una chiave di transazione unica.
2. Quando si riceve DEADLINE_EXCEEDED, il client può riprovare in modo sicuro con la stessa chiave.
3. Il servizio di acquisizione controllava la presenza di questa chiave nel suo database / Redis e restituiva lo stato della transazione già elaborata o la elaborava per la prima volta."