Ponawianie notyfikacji
Mechanizm ponawiania notyfikacji (Retry Policy)
Paymentic implementuje zaawansowaną strategię Retry Policy w przypadku, gdy nie otrzyma prawidłowej odpowiedzi od endpointu Partnera. Zapewnia to dostarczenie wszystkich istotnych informacji o zmianach statusów transakcji.
Wymagana odpowiedź
Aby potwierdzić prawidłowe otrzymanie notyfikacji, endpoint Partnera musi zwrócić:
- Status HTTP 200 z treścią
text/plain OK - Lub status HTTP 202 bez treści (bez body)
Każda inna odpowiedź (inny kod statusu, brak odpowiedzi, timeout) będzie traktowana jako nieudana próba dostarczenia notyfikacji i spowoduje ponowienie wysyłki zgodnie z zasadami ponawiania.
Schemat ponawiania (Retry Policy)
System ponawia wysyłanie notyfikacji maksymalnie 30 razy zgodnie z poniższą strategią Retry Policy. Notyfikacje są przetwarzane w kolejce FIFO (First In, First Out) - kolejne próby ponowienia realizowane są w tej samej kolejności, w jakiej notyfikacje zostały pierwotnie wysłane.
| Próby | Interwał ponowienia |
|---|---|
| 1-10 | co 1 minutę |
| 11-15 | co 15 minut |
| 16-30 | co 1 godzinę |
Najlepsze praktyki i Circuit Breaker
- Szybka odpowiedź - Endpoint powinien jak najszybciej zwrócić odpowiedź 200/202, aby uniknąć niepotrzebnych ponowień
- Asynchroniczne przetwarzanie - Rozważ przetwarzanie notyfikacji w tle (queue, background jobs)
- Idempotentność - Upewnij się, że wielokrotne otrzymanie tej samej notyfikacji nie spowoduje problemów
- Logowanie - Loguj wszystkie otrzymane notyfikacji do celów diagnostycznych
- Monitorowanie - Monitoruj liczbę ponowień, aby wykrywać problemy z dostępnością endpointu
Uwaga: Paymentic implementuje wzorzec Circuit Breaker - po 30 nieudanych próbach notyfikacja zostaje trwale oznaczona jako niedostarczona, co chroni system przed nieskończonym ponawianiem i przeciążeniem infrastruktury.
Ważne uwagi
- Po 30 nieudanych próbach notyfikacja zostanie oznaczona jako niedostarczona
- Czas wysyłki notyfikacji znajduje się w nagłówku
X-Paymentic-Time - System nie ponawia notyfikacji, które otrzymały prawidłową odpowiedź (200 OK lub 202)