Użytkownik wysyła wniosek, a aplikacja musi pobrać dane z zewnętrznej usługi. Dostawca odpowiada, że w tej chwili nie przyjmie kolejnego żądania. Jeśli system ponawia je bez końca, może przedłużyć problem i zostawić użytkownika z ekranem, który niczego nie wyjaśnia. Limit usługi trzeba uwzględnić w projekcie procesu, a nie dopiero wtedy, gdy zaczyna pojawiać się błąd.
Aplikacja korzystająca z zewnętrznego API powinna wiedzieć, jakie ograniczenia obowiązują w wybranej usłudze, jak rozpoznać odpowiedź o ograniczeniu i kiedy można spróbować ponownie. Potrzebuje również miejsca dla oczekujących spraw oraz czytelnej informacji dla pracownika. Konkretne zasady zależą od dostawcy i konfiguracji, dlatego nie ma jednego czasu oczekiwania odpowiedniego dla wszystkich integracji.
Jeśli planujesz połączenie systemów, wyślij brief z opisem zadania, używanych usług i sytuacji, w których użytkownik czeka na wynik. Wystarczy fikcyjny przykład. Nie przesyłaj kluczy API, haseł ani danych klientów podczas pierwszej rozmowy.
Ustal, od czego zależy zadanie użytkownika
Wyobraźmy sobie firmę usługową, która po przyjęciu zlecenia pobiera informacje z zewnętrznego systemu. Pracownik chce wiedzieć, czy dane są dostępne i czy może przekazać sprawę dalej. To przykład projektowy, nie opis konkretnej integracji. Zanim ustalicie sposób ponawiania, określcie, która czynność rzeczywiście wymaga odpowiedzi dostawcy i co można zrobić, gdy ta odpowiedź nie nadejdzie od razu.
Nie każda informacja musi być pobierana ponownie przy każdym otwarciu ekranu. W części procesów zespół może korzystać z ostatnich potwierdzonych danych, jeśli zna ich wiek i taka decyzja jest bezpieczna. W innych sytuacjach aktualny wynik jest niezbędny. Regułę trzeba uzgodnić z właścicielem procesu, a interfejs powinien jasno wskazywać, czy pokazuje wartość bieżącą czy wcześniejszą.
Ustalcie również, co dzieje się z pracą użytkownika podczas oczekiwania. Czy może uzupełnić inne pola? Czy aplikacja zachowa wprowadzone informacje? Czy sprawa ma właściciela, który zobaczy wynik później? Ekran z obracającym się symbolem nie odpowiada na te pytania. Przy dłuższym zadaniu bardziej przydatny może być zapisany stan oraz informacja o kolejnym kroku.
O rozdzieleniu pracy i informacji w systemie zleceń piszemy w artykule o aplikacji dla firmy usługowej. Integracja powinna wspierać tę drogę, nie zmuszać pracownika do ponownego wprowadzania danych po każdej przerwie w dostępie do usługi zewnętrznej.
Sprawdź limit u właściwego dostawcy
Ograniczenie może dotyczyć liczby żądań, wielkości przesyłanych danych, określonej funkcji lub innego zasobu. Zasady mogą różnić się między usługami, kontami i konfiguracjami. Przed projektowaniem kolejki sprawdźcie aktualną dokumentację dostawcy oraz warunki właściwe dla rzeczywistego sposobu użycia. Nie warto kopiować liczby znalezionej w starym przykładzie bez sprawdzenia, do czego się odnosiła.
Ustalcie, jak aplikacja rozpoznaje odpowiedź o ograniczeniu. Dostawca może przekazać kod błędu, dodatkową informację o czasie ponowienia lub własny komunikat. Trzeba sprawdzić znaczenie tych danych w dokumentacji oraz sposób ich obsługi w używanym kliencie. Jeśli informacja o ponowieniu nie jest dostępna, zachowanie powinno wynikać z uzgodnionej reguły, a nie z przypadkowej pętli.
Limit może być współdzielony przez kilka procesów. Raport uruchomiony przez jeden zespół może korzystać z tej samej usługi co sprawy obsługiwane przez inny. Warto ustalić, które zadania są ważniejsze dla pracy użytkowników i kto odpowiada za ich kolejność. Priorytet powinien wynikać z uzgodnionego procesu, a nie tylko z kolejności kliknięcia.
Przy planowaniu integracji potrzebna jest również informacja o źródle danych i właścicielu połączenia. W artykule o źródłach danych w integracji systemów opisujemy te decyzje szerzej. Limit jest jednym z warunków działania połączenia, obok uprawnień, dostępności i sposobu potwierdzania wyniku.
Ponawiaj z ograniczeniem i sprawdzaj skutek
Ponowienie może pomóc przy przejściowym ograniczeniu, ale nie powinno trwać bez końca. Zespół musi ustalić maksymalny zakres prób, sposób oczekiwania i dalszy krok po jego wyczerpaniu. Powtarzanie żądań natychmiast i równocześnie może zwiększyć obciążenie w chwili, gdy dostawca już ogranicza ruch.
Dokumentacja AWS dotycząca ponowień w SDK opisuje między innymi wydłużanie odstępów i losowe rozłożenie prób. Opisane na tej stronie nowsze zachowanie wymaga obecnie włączenia ustawienia AWS_NEW_RETRIES_2026=true, dopóki nie stanie się domyślne. To przykład konkretnego zestawu narzędzi, a nie uniwersalna konfiguracja dla każdego API. Należy sprawdzić dokumentację używanego klienta oraz to, czy aplikacja nie dodaje kolejnej warstwy ponowień nad już istniejącą.
Ważne jest również pytanie, czy operację można bezpiecznie powtórzyć. Pobranie danych i utworzenie nowego zamówienia mają inne skutki. Jeżeli odpowiedź nie dotarła, aplikacja może nie wiedzieć, czy druga strona wykonała zadanie. Przed ponowieniem trzeba wykorzystać dostępne identyfikatory i sposób sprawdzenia stanu, zgodnie z możliwościami dostawcy.
Ten problem opisujemy dokładniej w artykule o idempotencji API i unikaniu duplikatów. Właściwe ograniczenie liczby prób nie zastępuje kontroli skutku. Użytkownik nie powinien otrzymać dwóch zamówień dlatego, że aplikacja dwukrotnie próbowała uzyskać potwierdzenie.
Kolejka musi mieć reguły i właściciela
Jeśli zadanie może poczekać, kolejka pomaga zachować sprawę do późniejszego wykonania. Powinna jednak mieć określony zakres informacji, stan zadania i osobę odpowiedzialną za wyjątki. Zespół musi wiedzieć, które sprawy czekają, jak długo pozostają w kolejce oraz co dzieje się, gdy użytkownik anuluje zadanie przed jego wykonaniem.
Ustalcie, czy wszystkie zadania mają tę samą kolejność. Niektóre mogą dotyczyć pracy klienta oczekującego na odpowiedź, inne przygotowania raportu dostępnego później. Priorytety powinny być jawne oraz sprawdzone z osobami prowadzącymi proces. Nie należy automatycznie zakładać, że najnowsze żądanie powinno zawsze wyprzedzać wcześniejsze.
Jeśli zadanie przekroczy uzgodniony czas oczekiwania lub liczbę prób, potrzebna jest ścieżka wyjaśnienia. Pracownik powinien móc zobaczyć identyfikator sprawy, etap i ostatni potwierdzony stan. Pełne dane klienta nie muszą trafiać do każdego dziennika. Zakres informacji należy dopasować do obsługi oraz uprawnień osób, które sprawdzają problem.
O przekazaniu i potwierdzaniu zdarzeń piszemy w artykule o API i webhookach. Przy kolejce ważne jest odróżnienie przyjęcia zadania przez aplikację od jego wykonania w zewnętrznej usłudze. Te dwa stany powinny być widoczne zarówno dla użytkownika, jak i dla zespołu obsługi.
Pokaż użytkownikowi rzeczywisty stan
Komunikat powinien mówić, co udało się zrobić oraz co nastąpi dalej. Jeśli wniosek zapisano, ale pobranie danych jeszcze trwa, warto pokazać oba fakty. Jeżeli system nie może potwierdzić zapisu, nie powinien zapewniać o zakończeniu sprawy. Użytkownik potrzebuje również informacji, czy może bezpiecznie zamknąć ekran i gdzie później odnajdzie wynik.
Przy błędzie ważne jest unikanie niepotrzebnego żargonu. Pracownik nie musi znać nazwy kodu zwróconego przez API, żeby zrozumieć, że dane są chwilowo niedostępne. Zespół techniczny może potrzebować szczegółowego identyfikatora w historii zdarzeń. Obie informacje służą różnym odbiorcom i nie muszą wyglądać tak samo.
Jeżeli proces wymaga ręcznego przejęcia, aplikacja powinna wskazać, do kogo trafiła sprawa albo jak użytkownik może zgłosić problem. Nie należy obiecywać konkretnego terminu bez uzgodnienia go z zespołem. Przy projektowaniu komunikatów warto zaprosić przyszłych użytkowników do próby opisanej w artykule o testowaniu prototypu.
W przypadku zadań o różnej ważności potrzebna może być inna informacja. Opóźniony raport tygodniowy i brak potwierdzenia zamówienia wpływają na pracę w odmienny sposób. Przed przygotowaniem tekstów przejdźcie przykładową sprawę z osobą, która rzeczywiście będzie oczekiwać wyniku.
Obserwuj kolejkę i reaguj na zmianę warunków
Zespół utrzymujący integrację powinien wiedzieć, ile spraw oczekuje, jak długo czeka najstarsza i czy kolejne próby kończą się tym samym błędem. Dobór sygnałów zależy od skutków opóźnienia. Jedna sprawa może wymagać szybkiej reakcji, jeśli dotyczy pilnej czynności, podczas gdy inny proces dopuszcza późniejsze wykonanie.
Alert potrzebuje odbiorcy i uzgodnionego działania. Jeśli informuje o zapełniającej się kolejce, ktoś powinien sprawdzić stan usługi, warunki limitu oraz możliwość bezpiecznego wznowienia zadań. O wyborze takich sygnałów piszemy w artykule o monitorowaniu automatyzacji.
Dostawca może zmienić warunki lub sposób komunikowania ograniczeń. Warto ustalić, kto śledzi aktualną dokumentację i ocenia wpływ na integrację. Zmiana planu konta nie powinna być jedyną odpowiedzią na problem, zanim zespół zrozumie źródło ruchu i potrzeby użytkowników. Ceny oraz limity trzeba sprawdzić dla konkretnej usługi w chwili podejmowania decyzji.
Przetestuj ograniczenie przed uruchomieniem
W środowisku testowym przygotujcie odpowiedź symulującą ograniczenie dostawcy, chwilową niedostępność oraz niepewny wynik zapisu. Sprawdźcie liczbę prób, stan kolejki i komunikat widoczny dla użytkownika. Następnie sprawdźcie anulowanie zadania oraz przekazanie sprawy do pracownika po wyczerpaniu uzgodnionej reguły.
Test powinien obejmować kilka równoczesnych zadań i różne priorytety, jeśli występują w procesie. Ustalcie, czy jedno zadanie może blokować pozostałe oraz jak zespół rozpozna zaległość. Wynik próby należy porównać z wcześniej uzgodnionymi kryteriami. Podejście do przygotowania takich scenariuszy opisujemy w artykule o odbiorze aplikacji.
Przy kilku integracjach sprawdźcie, czy ograniczenie jednej usługi nie blokuje całej drogi użytkownika bez potrzeby. Jeśli część informacji pochodzi z innego źródła, aplikacja może pokazać to, co zostało potwierdzone, oraz wyjaśnić brak pozostałych danych. Taka decyzja wymaga uzgodnienia z właścicielem procesu. Niepełny widok nie może sugerować, że pokazuje wszystkie dostępne informacje.
Osobno zaplanujcie zachowanie po zmianie danych przez użytkownika podczas oczekiwania. Jeśli w kolejce pozostaje zadanie dla wcześniejszej wersji wniosku, system powinien rozpoznać tę zależność przed wykonaniem operacji. Może potrzebować anulowania starego zadania lub ponownej oceny aktualnego stanu. Reguła zależy od tego, czy wcześniejsza czynność została już przekazana do dostawcy.
W dokumentacji utrzymania warto zapisać, kto może zmienić ustawienia liczby prób i kolejności zadań. Zbyt agresywna zmiana może nasilić problem, a zbyt długa kolejka może ukryć sprawy wymagające reakcji. Przed aktualizacją ustawień zespół powinien sprawdzić aktualne warunki dostawcy oraz przewidywany wpływ na użytkowników. Po zmianie potrzebny jest przegląd rzeczywistego zachowania.
Jeśli zadania oczekują dłużej niż zwykle, pracownik obsługi może potrzebować listy spraw i sposobu przekazania informacji klientom. Taki widok powinien ograniczać dane do zakresu potrzebnego dla tej roli. Ważne jest także zachowanie historii decyzji: które sprawy wykonano później, które anulowano i które wymagają osobnego wyjaśnienia. Pozwala to uniknąć ponownego uruchomienia wszystkich zadań bez sprawdzenia ich aktualności.
Warto również ustalić, kto potwierdza zakończenie obsługi zaległości i sprawdza, czy użytkownicy widzą aktualny wynik swoich zadań.
Po uruchomieniu warto wrócić do przypadków, w których użytkownik nie wiedział, czy zadanie się udało. Mogą wskazywać brakujący stan albo niejasny komunikat. W integracjach systemów dobra obsługa ograniczenia oznacza zachowanie sprawy, kontrolowane działanie i informację, na której zespół może się oprzeć.
Źródła i dokumentacja
Materiały sprawdzone przy opracowaniu tekstu. Przy wyborze usługi lub technologii potwierdzamy warunki dla konkretnego projektu.








