5. Fiabilitatea plăților: "Cum a fost rezolvată problema idempotentiei în gRPC?"
Scopul intervievatorului: Plățile — cea mai periculoasă zonă pentru duplicate (Double Spending).
Întrebare posibilă:
"Cererea de plată a trecut prin gRPC, dar a eșuat din cauza timeout-ului (DEADLINE_EXCEEDED). Banii au fost deduși — necunoscut. Ce face modulul de plată?"
Cum să răspundeți:
"Într-un context tranzacțional financiar, orice cerere repetată trebuie să aibă o Cheie de Idempotentă:
1. În metadatele cererii gRPC (metadata=((‘x-idempotency-key’, key_uuid),)) am transmis întotdeauna o cheie de tranzacție unică.
2. La primirea DEADLINE_EXCEEDED, clientul putea încerca în siguranță din nou cu aceeași cheie.
3. Serviciul de achiziție verifica prezența acestei chei în baza sa de date / Redis și returna fie starea tranzacției deja procesate, fie o procesa pentru prima dată."