System rekomendacji przewoźników dla Trans.eu: inteligentny matching oparty na danych i modelowaniu procesów

O projekcie

Klient:

Trans.eu to jedna z największych giełd ładunków w Europie, łącząca firmy spedycyjne z przewoźnikami. Platforma obsługuje dziesiątki tysięcy zleceń dziennie i od lat rozbudowuje ekosystem usług cyfrowych wokół rynku transportowego. fireup.pro współpracowało z Trans.eu od 2017 roku jako jeden z kilku zespołów zaangażowanych w rozbudowę platformy w tym m.in. jako Team Blue, odpowiedzialny za wybrane systemy backendowe.

Cel projektu:
Biznesowe
Zleceniodawca na giełdzie Trans.eu zgłasza ładunek do przewiezienia i chce natychmiast otrzymać listę dopasowanych, godnych zaufania przewoźników. Celem SmartMatch było dostarczenie właśnie tego: listy rekomendacji opartej na realnych danych, a nie tylko dostępności, dopasowanej do konkretnych wymagań i historii zleceniodawcy.
Technologiczne
Zbudować od zera system, który pobiera surową listę kandydatów z zewnętrznego serwisu rekomendacyjnego, nakłada na nią wielowymiarowe filtrowanie biznesowe (21 czynników) i dostarcza wynik w postaci posortowanej, gotowej do użycia listy przewoźników. System miał być czytelny dla biznesu, z możliwością graficznej wizualizacji procesu decyzyjnego.

Doświadczenie klienta

W dynamicznie zmieniających się warunkach rynkowych, które są podstawą specyfiki rozwiązania SmartMatch, ważny jest zaangażowany zespół. Muszą oni również umieć przełożyć pomysły na działające rozwiązanie, rozumiejąc przy tym specyfikę biznesu. Zespół fireup.pro spełnia wszystkie te kryteria.

Aleksander Olbert

Product Owner, Trans.eu

Buckle
Od wyzwania

Kluczowe wyzwania

1

Dane z wielu źródeł, różnej jakości

Pierwotna lista kandydatów powstawała w zewnętrznym systemie, początkowo opartym o machine learning analizujący czat między zleceniodawcami i przewoźnikami (gdzie jeżdżą, czym handlują). Ten model okazał się nieprecyzyjny w praktyce. Dopiero kiedy Trans.eu wprowadził faktyczne zlecenia jako byty systemowe (z przypisanymi przewoźnikami i trasami), jakość wejściowych danych wzrosła na tyle, by filtrowanie miało sens. System SmartMatch musiał działać na danych, które ewoluowały razem z platformą.

2

Modelowanie złożonego procesu decyzyjnego

Wybór przewoźnika to nie jedno kryterium, lecz 21 czynników: certyfikaty, znaki towarowe, dopasowanie trasy, wiek floty, wcześniejsze doświadczenia z klientem i inne. Każdy filtr mógł podnosić lub obniżać wiarygodność przewoźnika. Wyzwaniem było nie tylko zaimplementowanie tej logiki, ale przedstawienie jej w formie zrozumiałej dla biznesu tak, żeby product owner widział co i dlaczego się dzieje na każdym etapie oceny.

3

Implementacja od zera, integracja z rosnącą platformą

SmartMatch powstawał w momencie, gdy Trans.eu przechodził z architektury monolitycznej na mikroserwisy. System musiał integrować się z istniejącymi i nowo powstającymi serwisami, konsumować dane z różnych źródeł i dostarczać wyniki do nowej platformy bez możliwości zatrzymania działającego środowiska produkcyjnego.

Kluczowe wymagania funkcjonalne

Filtrowanie wieloczynnikowe

  • wybór najlepszych kandydatów z pierwotnej listy na podstawie 21 warunków biznesowych (certyfikaty przewoźnika, zgodność trasy, wiek floty, historia współpracy, znaki towarowe i inne), z możliwością konfiguracji wag poszczególnych kryteriów.

Integracja z zewnętrznym serwisem rekomendacyjnym

  • pobieranie i normalizacja danych z systemu generującego pierwotną listę przewoźników.

Wizualizacja procesu

  • graficzne odwzorowanie algorytmu rekomendacji w narzędziu Camunda, dostępne dla zespołu biznesowego klienta.

Dostarczanie wyników do platformy

  • eksport posortowanej listy rekomendacji do platformy mikroserwisowej Trans.eu.

Dostęp do danych z wielu serwisów

  • agregacja informacji o przewoźnikach z różnych źródeł (certyfikaty, statystyki aktywności, historia zleceń).
Przez rozwiązanie

Architektura i podejście

  • Team Blue zaimplementował SmartMatch od zera jako serwis backendowy w Javie i Springu. Serwis pobierał surowe rekomendacje z zewnętrznego systemu, a następnie przepuszczał każdego kandydata przez wieloetapowy proces filtrowania — modelowany i wykonywany za pomocą narzędzia Camunda.
  • Camunda posłużyła tu do dwóch celów jednocześnie: po pierwsze, jako mechanizm wykonujący logikę procesu (kolejne etapy oceny przewoźnika), po drugie, jako narzędzie do graficznej wizualizacji tego procesu. W rozmowach z biznesem zespół mógł pokazać dokładnie, co dzieje się na każdym etapie — który filtr odpada, dlaczego dany przewoźnik dostał wyższą lub niższą punktację. To był konkretny most między logiką backendową a decyzjami produktowymi.
  • Dane o przewoźnikach (certyfikaty, historia, statystyki aktywności) pobierane były z dostępnych serwisów platformy Trans.eu. Do analizy i agregacji danych wykorzystano Apache Spark. Komunikacja między komponentami opierała się na RabbitMQ. Logi i monitoring — Elasticsearch, Kibana i Grafana.

Sposób pracy

fireup.pro działało jako dedykowany team backendowy - kilkuosobowy zespół developerów Javy oraz testerem QA. Praca odbywała się w cyklach 2-tygodniowych, z pełną odpowiedzialnością za projekt od architektury po wdrożenie.

    Po sukces

    Efekty technologiczne

    System zrealizowany od zera i wdrożony produkcyjnie

    SmartMatch działał jako jeden z serwisów nowej platformy mikroserwisowej Trans.eu, dostarczając rekomendacje przewoźników do zleceń zgłaszanych przez użytkowników giełdy.

    Transparentny proces decyzyjny

    Dzięki Camundzie każdy etap algorytmu rekomendacji był zwizualizowany graficznie i czytelny dla biznesu, nie tylko dla zespołu technicznego. Rozmowy o logice dopasowania odbywały się na diagramach procesu, nie na fragmentach kodu.

    Wieloźródłowa agregacja danych

    System integrował dane o przewoźnikach z wielu serwisów Trans.eu, łącząc informacje o certyfikatach, historii, aktywności i preferencjach zleceniodawców w jeden spójny model oceny.


    Zespół projektowy
    Abstract background
    Aleksander
    Grzegorz
    Emanuel
    Adam
    Jacek

    Aleksander

    Backend Developer

    Tech stack

    Java

    Spring

    Camunda

    ApacheSpark

    Apache Spark

    Amazon S3

    Amazon S3

    RabbitMQ

    RabbitMQ

    Elasticsearch

    Kibana

    Kibana

    Grafana

    Grafana

    Twoja sukces to nasz sukces!

    Zobacz, jak możemy wspólnie zbudować technologiczną przewagę dla Twojej firmy

    Umów się na konsultację!

    Mamy zespół, który naprawdę zna się na rzeczy — pomożemy Ci znaleźć rozwiązanie, które działa.

    Wnioski i rekomendacje

    Jakość danych wejściowych decyduje o jakości systemu

    Pierwsze iteracje systemu rekomendacyjnego po stronie Trans.eu (oparte o analizę czatu) nie dawały wystarczająco precyzyjnych wyników. Dopiero gdy platforma zaczęła operować na faktycznych zleceniach jako bytach systemowych, filtrowanie SmartMatch miało solidną podstawę. Warto inwestować w jakość danych źródłowych zanim zainwestuje się w zaawansowane algorytmy.

    Camunda: świetna do transparentności procesu, gorsza przy dużym obciążeniu

    Graficzna wizualizacja procesu była realną wartością w komunikacji z biznesem, zamiast opisywać algorytm słowami, można było pokazać diagram. Jednocześnie Camunda nie jest rozwiązaniem o najwyższej przepustowości. Na ówczesną skalę Trans.eu działała poprawnie, ale przy znaczącym wzroście liczby zapytań wymagałaby zwiększenia zasobów systemowych lub przemyślenia architektury.

    Modelowanie procesów biznesowych jako narzędzie pracy produktowej

    Podejście „narysuj proces przed implementacją" okazało się użyteczne nie tylko technicznie. Diagram Camundy stawał się dokumentacją żywą - wskazywał co jest zaimplementowane, co jest warunkiem biznesowym, gdzie zaczynają się edge case'y.

    Background

    Czas na Twój projekt!

    Przekształć idee w rzeczywiste rozwiązanie i skontaktuj się z nami.

    Twoja wizja, nasza realizacja
    Napisz, omówimy szczegóły.

    Wyrażam zgodę na przetwarzanie moich danych osobowych przez Fire ...


    System rekomendacji przewoźników dla Trans.eu | Case Study | fireup.pro