5. Fiabilité du paiement : "Comment le problème d'idempotence a-t-il été résolu dans gRPC ?"
Objectif de l'intervieweur : Les paiements — la zone la plus dangereuse pour les doublons (Double Spending).
Question possible :
"La demande de paiement est passée par gRPC mais a échoué en raison du délai d'expiration (DEADLINE_EXCEEDED). L'argent a-t-il été déduit — inconnu. Que fait le module de paiement ?"
Comment répondre :
"Dans un contexte transactionnel financier, toute demande répétée doit avoir une clé d'idempotence :
1. Dans les métadonnées de la requête gRPC (metadata=((‘x-idempotency-key’, key_uuid),)) nous avons toujours transmis une clé de transaction unique.
2. Lors de la réception de DEADLINE_EXCEEDED, le client pouvait réessayer en toute sécurité avec la même clé.
3. Le service d'acquisition vérifiait la présence de cette clé dans sa base de données / Redis et renvoyait soit le statut de la transaction déjà traitée, soit la traitait pour la première fois."