5. Confiabilidade do pagamento: "Como foi resolvido o problema de idempotência no gRPC?"
Objetivo do entrevistador: Pagamentos — a área mais perigosa para duplicados (Double Spending).
Pergunta possível:
"A solicitação de pagamento passou pelo gRPC, mas falhou devido ao timeout (DEADLINE_EXCEEDED). O dinheiro foi deduzido — desconhecido. O que faz o módulo de pagamento?"
Como responder:
"Em um contexto de transação financeira, qualquer solicitação repetida deve ter uma Chave de Idempotência:
1. Nos metadados da solicitação gRPC (metadata=((‘x-idempotency-key’, key_uuid),)) sempre transmitimos uma chave de transação única.
2. Ao receber DEADLINE_EXCEEDED, o cliente poderia tentar novamente com segurança usando a mesma chave.
3. O serviço de aquisição verificava a presença dessa chave em seu banco de dados / Redis e retornava o status da transação já processada ou a processava pela primeira vez."