Dlaczego Twój SaaS traci na złej strategii webhooków? 3 błędy
Webhooki – niby proste, niby wszyscy je znają. A jednak w praktyce, gdy audytuję architekturę SaaS-ów, widzę te same trzy błędy. Powielają je zarówno startupy, jak i firmy z kilkuletnim stażem. Koszty? Utrata danych, utrata klientów, godziny debugowania. Sprawdź, czy Twój system też na tym cierpi.
Błąd 1: Brak retry z backoffem – czyli jak w kilka dni stracić dane
Wyobraź sobie: Twój SaaS wysyła webhook z informacją o nowej fakturze. API odbiorcy akurat jest przeciążone (black friday, promocja, update). Webhook leci w pustkę – błąd 5xx. I co? W wielu implementacjach… nic. Albo jedna próba powtórzenia za sekundę, która ponownie odpada, a potem zapominamy.
Przykład z życia: Klient – platforma do obsługi subskrypcji. Ich webhook do systemu księgowego nie miał retry. Gdy dostawca API miał awarię, stracili informacje o 200 płatnościach. Odbudowa danych? Ręczna, trwała tydzień.
Rozwiązanie: Wdróż wykładniczy backoff (np. 1s, 2s, 4s, 8s… max 5 prób) i zapisuj nieudane webhooki do kolejki dead-letter. Monitoruj DLQ – to sygnał ostrzegawczy.
Błąd 2: Brak idempotentności – zapłacisz dwa razy
Klient wysyła webhook o płatności. Odbiorca przetwarza, ale timeout – nie wysyła 200. Nadawca próbuje ponownie. Odbiorca dostaje drugi raz ten sam webhook i… księguje drugą płatność. Brak idempotentności = podwójne koszty, reklamacje, zaufanie leci.
Rozwiązanie: Każdy webhook powinien mieć unikalne ID (UUID7). Odbiorca przechowuje ID i przed przetworzeniem sprawdza, czy już go widział. Jeśli tak – zwraca 200 bez działania.
Błąd 3: Brak walidacji payloadu – bezpieczeństwo i głupie błędy
Webhook przychodzi, a Ty ufasz, że ma wszystkie pola. W jednym z audytów znalazłem platformę, która parsowała JSON bez walidacji – gdy brakowało klucza, leciał wyjątek i cały proces się sypał. A atakujący może wysłać złośliwy payload, który wykona niechciane operacje.
Rozwiązanie: Waliduj typy danych, zakresy, obecność wymaganych pól. Używaj schematów (JSON Schema) i weryfikuj sygnaturę (podpis HMAC lub Token JWT). Nie ufaj żadnemu webhookowi bez autoryzacji.
Jak zacząć to poprawiać?
Przejrzyj swój kod integracji webhooków. Czy masz retry z backoffem? Czy obsługujesz duplikaty? Czy walidujesz dane? Jeśli odpowiedź brzmi „nie” – czas to zmienić. Te trzy błędy kosztują Cię więcej niż myślisz.
Podsumowanie: Dobre webhooki to podstawa skalowalnego, niezawodnego SaaS. Inwestycja w poprawną implementację zwraca się wielokrotnie – mniej błędów, mniej interwencji supportu, stabilniejsze integracje. A Twoi klienci będą Ci wdzięczni.


