Sobes.tech
Middle+

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