Sobes.tech
Middle+

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