Blog · Case study

SmartPipe: automatyzacja workflow zamiast ręcznego klikania

SmartPipe łączy źródła danych, reguły biznesowe i akcje w systemach zewnętrznych. To „rurociąg” zadań: wejście, warunki, wyjście, ponowienie przy błędzie. Poniżej opisujemy, jak projektujemy takie automatyzacje, żeby dało się je utrzymać.

Dlaczego nie wystarczy skrypt one-off

Jednorazowy skrypt na serwerze działa do pierwszej zmiany API partnera. Potem nikt nie pamięta, gdzie leży kod, jakie ma sekrety i kto go uruchamia. SmartPipe traktuje workflow jako obiekt pierwszej klasy: wersjonowany, z logami, z właścicielem i z jasnym statusem ostatniego uruchomienia.

Model pipeline

Każdy pipeline ma: trigger (harmonogram, webhook, ręczne uruchomienie), kroki (pobranie danych, transformacja, walidacja, akcja), oraz politykę błędów (retry, alert, stop). Kroki są idempotentne tam, gdzie to możliwe: ponowne uruchomienie nie powinno tworzyć duplikatów zamówień ani podwójnych maili.

Dane przejściowe trzymamy w bazie, nie w plikach „tmp” na dysku kontenera. Kontener może zniknąć przy redeploy; stan procesu nie powinien znikać razem z nim.

Integracje API

Każdy partner ma limity, inne kody błędów i inną semantykę „sukcesu”. Opakowujemy wywołania w warstwę z: timeoutem, logowaniem request-id, mapowaniem błędów na status czytelny dla operatora. Gdy sync się wyłoży, w panelu widać który krok i dlaczego, a nie tylko stack trace.

Bezpieczeństwo i sekrety

Tokeny OAuth, klucze SMTP i connection stringi bazy są w zmiennych środowiskowych platformy hostingu, nie w repozytorium. Rotacja klucza nie wymaga przebudowy całej aplikacji: wystarczy zmiana env i restart kontenera.

Przykładowe scenariusze

  • Synchronizacja statusów zamówień między magazynem a panelem sprzedaży.
  • Generowanie powiadomień e-mail po zmianie statusu płatności.
  • Eksport raportów dziennych do zewnętrznego dysku / API księgowego.
  • Walidacja ofert przed publikacją na marketplace.

Wnioski

Automatyzacja bez obserwowalności to ryzyko operacyjne. SmartPipe pokazuje, jak łączymy Node.js, kolejkowanie, PostgreSQL i panel statusów na infrastrukturze Docker / Nginx. Demo: smartpipe.devstudioit.app. Infrastruktura: Docker, Nginx, SSL.

Wróć do bloga