5. Ödənişlərin etibarlılığı: "gRPC-də idempotentlik məsələsi necə həll olundu?"
Müsahibənin məqsədi: Ödənişlər — təkrarlamalar üçün ən təhlükəli sahə (Double Spending).
Mümkün sual:
"Ödəniş tələbi gRPC vasitəsilə keçdi, lakin vaxt aşımı (DEADLINE_EXCEEDED) səbəbindən uğursuz oldu. Pul çıxıldı — məlum deyil. Ödəniş modulu nə edir?"
Necə cavab vermək olar:
"Maliyyə tranzaksiya kontekstində, hər bir təkrarlanan tələbin Idempotency Key-ə malik olmalıdır:
1. gRPC sorğusunun metadata-sında (metadata=((‘x-idempotency-key’, key_uuid),)) hər zaman unikal tranzaksiya açarı ötürürdük.
2. DEADLINE_EXCEEDED alınanda, müştəri təhlükəsiz şəkildə eyni açar ilə yenidən cəhd edə bilər.
3. Alım xidməti, bu açarın öz bazasında / Redis-də olub-olmadığını yoxlayır və ya artıq işlənmiş tranzaksiyanın vəziyyətini geri qaytarır və ya ilk dəfə işləyir."