Przejdź do treści
Blog 2 min czytania

Wybór kolejki waży więcej niż wybór platformy

Na wybór platformy idą miesiące, warsztaty i tabele porównawcze. Na decyzję o tym, czy sklep rozmawia z ERP-em synchronicznie czy przez kolejkę, idzie zwykle jedno zdanie w dokumentacji technicznej. A to ta druga decyzja przesądza, czy w piątek o 17 sklep stoi.

Jakub Owsianka Autor
Zaktualizowano:
Okladka artykulu: Wybór kolejki waży więcej niż wybór platformy (kategoria: Blog)
Okladka artykulu: Wybór kolejki waży więcej niż wybór platformy (kategoria: Blog)
Spis treści (4)

Co się dzieje, gdy ERP nie odpowiada

To nie jest scenariusz hipotetyczny. ERP-y są wyłączane na aktualizację, na inwentaryzację, na backup. Bywa, że w nocy, ale bywa, że w środku dnia, bo ktoś musiał.

Sklep zintegrowany synchronicznie zachowuje się wtedy w jeden z dwóch sposobów: albo pokazuje błąd, albo wisi do timeoutu. Oba są złe, ale drugi jest gorszy, bo wisząca sesja trzyma zasoby i przy trzydziestu użytkownikach kładzie cały serwis.

Sklep zintegrowany przez kolejkę zachowuje się inaczej: przyjmuje zamówienie, wrzuca je do kolejki i mówi klientowi „przyjęte". Zamówienie wpada do ERP-a, gdy ERP wróci. Klient nie wie, że coś było nie tak, bo z jego perspektywy nic nie było nie tak.

Ta różnica nie wynika z platformy. Magento, Shopware i Sylius zachowają się identycznie źle, jeśli zintegrujesz je synchronicznie.

Kolejka nie przyspiesza niczego

To jest nieporozumienie, które warto rozbroić od razu. Kolejka nie sprawia, że coś dzieje się szybciej. Zamówienie trafi do ERP-a dokładnie tak samo wolno, jak trafiłoby bez niej.

Kolejka robi coś innego: rozdziela czas życia żądania od czasu życia operacji. Klient dostaje odpowiedź natychmiast, bo jego żądanie kończy się na „zapisałem do kolejki". To, że ERP przetworzy to za osiem sekund albo za pół godziny, przestaje być jego problemem.

Efekt uboczny jest taki, że dostajesz za darmo dwie rzeczy, których inaczej trzeba by dopisywać: retry i kolejność. Kolejka pamięta, co się nie udało, i próbuje ponownie. Bez niej pierwsza awaria oznacza ręczne przepisywanie zamówień z maila.

Co idzie przez kolejkę, a co nie

Nie wszystko da się i nie wszystko warto.

Przez kolejkę: złożenie zamówienia do ERP, synchronizacja katalogu, wysyłka maili, indeksowanie wyszukiwarki, publikacja ofert na marketplace, generowanie dokumentów. Wspólna cecha: klient nie czeka na wynik, żeby podjąć decyzję.

Nie przez kolejkę: sprawdzenie limitu kredytowego przed złożeniem zamówienia, rezerwacja stanu w momencie zatwierdzenia koszyka. Wspólna cecha: decyzja zależy od odpowiedzi. Odpowiedź „sprawdzimy za chwilę" jest tu bezużyteczna.

I to jest cała reguła. Nie „wszystko asynchronicznie, bo nowocześnie" - tylko synchronicznie tylko tam, gdzie odpowiedź zmienia decyzję. W typowym sklepie B2B takich miejsc jest dwa albo trzy. Reszta to kolejka.

Szczegóły techniczne - RabbitMQ kontra Redis, retry, dead letter - rozbieram w osobnym tekście o kolejkach.

Dlaczego to decyzja nieodwracalna

Platformę można zmienić. Kosztuje, boli, ale to jest projekt z datą końca i wszyscy wiedzą, że go robią.

Synchroniczną integrację też można przerobić na asynchroniczną - tyle że nikt tego nie robi. Bo to nie jest projekt, który da się sprzedać zarządowi: nic nowego nie przybywa, nic nie wygląda inaczej, a kosztuje trzy miesiące. Więc zostaje jak jest, a kolejki dopisuje się dopiero po awarii, która była na tyle głośna, że stała się argumentem.

Dlatego tę decyzję podejmuje się na początku, kiedy jest tania - a nie po pierwszym piątku, kiedy jest już droga. I dlatego przy wyborze platformy warto poświęcić jedno spotkanie mniej na tabelę porównawczą, a jedno więcej na to, jak ta platforma będzie rozmawiać z twoim ERP-em.

Co dalej

O autorze

Jakub Owsianka

Architekt rozwiązania silnika platform B2B. Zaczynał po stronie biznesu (własne sklepy), potem deweloper, dziś projektuje wdrożenia dla sklepów z katalogami w dziesiątkach tysięcy SKU. W ostatnich latach wdrożył AI-development w zespole i funkcjonalności oparte o AI bezpośrednio w silniku sklepu.

Masz pytanie do tego artykułu?

Dodatkowy kontekst, problem z własnym wdrożeniem, druga opinia - napisz wprost. Odpowiadam osobiście w 1-2 dni robocze.