Systemy partnerów bywają niedostępne i nie mamy na to wpływu. Mamy natomiast wpływ na to, jak zachowa się nasza strona.
Rozpoznać rodzaj awarii
Inaczej reaguje się na chwilową przerwę, inaczej na przedłużającą się niedostępność, a jeszcze inaczej na sytuację, w której partner odpowiada, ale zwraca błędne dane. Ostatni przypadek jest najgroźniejszy, bo wygląda jak normalna praca. Stan magazynowy zerowy dla całego katalogu to zwykle nie wyprzedaż, tylko awaria po drugiej stronie — i lepiej takich danych nie przyjmować.
Nie zatrzymywać sprzedaży
Niedostępność systemu przewoźnika nie powinna blokować przyjmowania zamówień. Etykiety da się wygenerować później — zatrzymanie sprzedaży jest kosztem większym niż opóźniona wysyłka.
Zasada nie jest bezwarunkowa. Przy płatnościach i przy sprzedaży towaru z magazynu dostawcy zatrzymanie bywa właściwsze niż przyjęcie zamówienia, którego nie da się zrealizować. Granicę trzeba wyznaczyć dla każdego połączenia osobno.
Kolejkowanie
Operacje wykonywane wobec niedostępnego partnera trafiają do kolejki i wykonają się po powrocie usługi. Bez kolejki po prostu przepadają.
Mechanizm i jego pułapki opisuje kolejkowanie i ponawianie operacji. Najważniejsze jest wstrzymanie prób na czas awarii — dobijanie się do niedostępnego systemu co sekundę nie przyspiesza jego powrotu.
Nadrabianie zaległości
Po powrocie partnera kolejka zawiera nagromadzone zadania. Wysłanie ich naraz przekroczy limit zapytań — nadrabianie musi być rozłożone w czasie.
Warto też ustalić kolejność. Zamówienia z ostatniej godziny są zwykle pilniejsze niż aktualizacja opisów sprzed doby, a limit zapytań obowiązuje wspólnie dla wszystkiego, co wysyłamy.
Tryb ograniczony
Warto z góry ustalić, co działa bez partnera. Sklep może przyjmować zamówienia bez sprawdzania stanów u dostawcy, jeśli przyjmiemy ryzyko — ale to decyzja, nie przypadek.
Decyzję najlepiej zapisać zawczasu, w jednym zdaniu na każde połączenie: co robimy, gdy ten partner milczy. Podejmowanie jej w trakcie awarii, przy dzwoniących klientach, kończy się improwizacją.
Komunikacja
Klient nie musi wiedzieć, który system zawiódł. Powinien wiedzieć, że jego zamówienie jest przyjęte i kiedy dostanie kolejną informację.
Obsługa natomiast musi wiedzieć, co się dzieje i czego nie obiecywać. Krótka informacja wewnętrzna oszczędza dziesiątek pytań i sprzecznych odpowiedzi udzielanych klientom.
Warto mieć przygotowaną krótką treść na taką okazję. Pisana na spokojnie brzmi lepiej niż układana w pośpiechu.
Kiedy przerwa jest po naszej stronie
Ta sama gotowość przydaje się przy własnych pracach: aktualizacji programu, przenosinach serwera, wymianie łącza. Partner wtedy nie znika, ale nasze zadania i tak muszą gdzieś poczekać. Warto z góry wiedzieć, które połączenia da się zatrzymać na godzinę bez konsekwencji, a które trzeba wznowić natychmiast.
Po awarii
Sprawdzenie kompletności: czy wszystko, co miało przejść, przeszło. Awarie zostawiają luki, które ujawniają się dopiero przy uzgodnieniu.
Dlatego po każdej dłuższej przerwie warto uruchomić porównanie danych po obu stronach, a nie poprzestawać na tym, że kolejka jest pusta. Pusta kolejka oznacza tylko, że zadania się wykonały albo zostały odrzucone — sprawdza się skutek, nie przebieg.