5. Fiabilidad del pago: "¿Cómo se resolvió el problema de la idempotencia en gRPC?"
Objetivo del entrevistador: Los pagos — la área más peligrosa para duplicados (Doble gasto).
Posible pregunta:
"La solicitud de pago pasó por gRPC pero falló por timeout (DEADLINE_EXCEEDED). ¿Se descontó el dinero? — no se sabe. ¿Qué hace el módulo de pago?"
Cómo responder:
"En un contexto de transacción financiera, cualquier solicitud repetida debe tener una Clave de Idempotencia:
1. En los metadatos de la solicitud gRPC (metadata=((‘x-idempotency-key’, key_uuid),)) siempre transmitimos una clave de transacción única.
2. Al recibir DEADLINE_EXCEEDED, el cliente podía reintentar de forma segura con la misma clave.
3. El servicio de adquisición verificaba la presencia de esta clave en su base de datos / Redis y devolvía el estado de la transacción ya procesada o la procesaba por primera vez."