Sobes.tech
Middle+

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."