Sobes.tech
Middle+

5. Zuverlässigkeit der Zahlungen: "Wie wurde das Problem der Idempotenz in gRPC gelöst?" Ziel des Interviewers: Zahlungen — der gefährlichste Bereich für Duplikate (Double Spending). Mögliche Frage: "Die Zahlungsanfrage wurde über gRPC gesendet, ist aber aufgrund eines Timeouts (DEADLINE_EXCEEDED) fehlgeschlagen. Wurde das Geld abgezogen — unbekannt. Was macht das Zahlungssystem?" So antworten: "Im finanziellen Transaktionskontext muss jede wiederholte Anfrage einen Idempotency Key haben: 1. In den Metadaten der gRPC-Anfrage (metadata=((‘x-idempotency-key’, key_uuid),)) haben wir immer einen eindeutigen Transaktionsschlüssel übertragen. 2. Beim Empfang von DEADLINE_EXCEEDED konnte der Client sicher erneut versuchen, mit demselben Schlüssel. 3. Der Akquisitionsdienst prüfte die Präsenz dieses Schlüssels in seiner Datenbank / Redis und gab entweder den Status der bereits verarbeiteten Transaktion zurück oder verarbeitete sie zum ersten Mal."