Wprowadzenie
Webhooki to standard w nowoczesnym e-commerce. Dzięki nim aktualizacje stanów magazynowych, powiadomienia o płatnościach czy zmiany statusu zamówienia są przekazywane w czasie rzeczywistym. Brzmi świetnie, prawda? Problem w tym, że większość firm wdraża webhooki na zasadzie „działa, więc nie ruszaj”, a to prosta droga do ukrytych kosztów i awarii.
W tym artykule pokażę Ci 3 najczęstsze błędy w strategii webhooków e-commerce, które realnie uderzają w budżet i wydajność. Dowiesz się, jak je wyeliminować, zanim staną się problemem.
1. Brak ogranicznika szybkości (Rate Limiting) – jak 1000 żądań na sekundę rujnuje API
Wyobraź sobie: Twój sklep wysyła webhook po każdej zmianie stanu magazynowego. W black friday przychodzi 500 zamówień na minutę, a każde z nich wywołuje 10 webhooków (zmiana statusu, aktualizacja zapasów, powiadomienie do systemu ERP). To 5000 żądań na minutę, które nagle walą do Twojego backendu.
Brak rate limitingu sprawia, że serwer zaczyna dusić się od nadmiaru połączeń. Rezultat? Opóźnienia w przetwarzaniu zamówień, błędy 429 (Too Many Requests) i w skrajnych przypadkach – całkowita blokada API przez dostawcę usługi.
Przykład z życia: Klient z branży odzieżowej miał zintegrowane webhooki z systemem magazynowym. Podczas wyprzedaży sezonowej serwer ERP przestał odpowiadać na 20 minut. Okazało się, że webhooki wysyłały setki żądań na sekundę, podczas gdy ERP radził sobie z max 50. Dodanie prostego rate limitingu po stronie nadawcy i kolejki zdarzeń (np. RabbitMQ) rozwiązało problem, ale wcześniej firma straciła kilka tysięcy złotych na przestojach.
Jak to zrobić dobrze?
- Wdróż rate limiting po stronie dostawcy webhooków – np. maksymalnie 10 żądań na sekundę na endpoint.
- Zaimplementuj kolejkę wiadomości, która buforuje nadmiarowe wywołania.
- Monitoruj wskaźniki: liczbę wywołań, czas odpowiedzi, błędy 429.
2. Brak obsługi błędów i retry logic – gdy webhook ginie bez śladu
Webhooki działają w modelu fire-and-forget. Wyślij i zapomnij – ale co, jeśli odbiorca jest niedostępny? Większość implementacji domyślnie nie ponawia próby. W efekcie zdarzenia giną: zamówienie nie trafia do systemu księgowego, a klient nie dostaje potwierdzenia.
Koszty? Ukryte. Brak obsługi błędów prowadzi do ręcznej interwencji zespołu IT, strat zaufania klientów, a w przypadku płatności – do zgubionych transakcji.
Przykład: Firma SaaS oferująca subskrypcje używała webhooków do aktualizacji statusów płatności w CRM. Gdy bramka płatności wysyłała webhook, a CRM odpowiadał błędem, webhook był tracony. Zarząd dowiedział się o problemie dopiero przy okresowym audycie – okazało się, że 5% płatności nie zostało zaksięgowanych. Koszt? Tysiące złotych w niezaksięgowanych przychodach i czas pracownika na ręczne uzgadnianie.
Jak to zrobić dobrze?
- Zaimplementuj retry z backoffem (np. 1s, 5s, 30s, 5 min, 30 min).
- Wdróż dead letter queue – miejsce, gdzie trafiają webhooki, które po kilku próbach wciąż nie zostały dostarczone.
- Alertuj zespół, gdy liczba nieudanych dostaw przekroczy próg.
3. Brak deduplikacji – gdy te same dane przychodzą wielokrotnie
Wyobraź sobie: klient zmienia adres w sklepie. System wysyła webhook „adres zaktualizowany”. Ale z powodu opóźnienia sieciowego webhook jest wysłany ponownie – tym razem przez retry. W efekcie CRM dostaje dwa identyczne żądania. Jeśli brakuje deduplikacji, CRM może dwukrotnie zaktualizować rekord, wysłać dwa e-maile z potwierdzeniem lub podwoić zadanie w systemie logistycznym.
Skutki finansowe: Podwójne wysyłki e-maili do klientów, błędy w inwentaryzacji, koszty przepustowości (każdy webhook to dane i czas procesora).
Przykład: Sklep z elektroniką miał zintegrowane webhooki z Google Ads – każde zdarzenie zmiany ceny powodowało aktualizację kampanii. Z powodu braku deduplikacji te same zmiany były wysyłane 2-3 razy. Google naliczał opłaty za nadmiarowe wywołania API, a budżet reklamowy topniał szybciej niż powinien.
Jak to zrobić dobrze?
- Dodaj unikalny identyfikator zdarzenia (event ID) w payloadzie webhooka.
- Po stronie odbiorcy przechowuj listę przetworzonych ID i ignoruj duplikaty.
- Użyj deduplikacji opartej na czasie – jeśli ten sam webhook pojawi się w ciągu np. 5 minut, odrzuć go.
Podsumowanie
Webhooki są niezbędne w e-commerce, ale bez odpowiedniego projektu potrafią generować ukryte koszty: przepustowość, moc obliczeniową, czas developmentu na ręczne łatanie dziur. Zanim zintegrujesz kolejny webhook, zastanów się: czy masz rate limiting? Czy masz retry z dead letter queue? Czy masz deduplikację?
Jeśli potrzebujesz pomocy w audycie swojej strategii webhooków – JurskiTech.pl specjalizuje się w projektowaniu wydajnych i bezpiecznych integracji API. Sprawdź nasze case study.


