Kiedy prosty przeplyw danych jest wystarczajacy
Jesli laczysz dwa systemy o jasno okreslonych rolach, a proces ma ograniczona liczbe wyjatkow, dodatkowa warstwa integracyjna moze byc przesada. W takiej sytuacji wystarcza dobrze zaprojektowane API, jasna walidacja i prosty monitoring.
Problem pojawia sie wtedy, gdy firma zaklada, ze taki prosty model bedzie skalowal sie w nieskonczonosc. Zwykle nie bedzie.
Po czym poznac, ze proces dojrzal do middleware
Typowe sygnaly to wzrost liczby partnerow, roznych typow operacji, nietrywialnych regul biznesowych i sytuacji, w ktorych trzeba ukryc wrazliwe dane lub odseparowac odpowiedzialnosc. Jesli do tego dochodzi potrzeba walidacji, limitow i kolejkowania zdarzen, proste laczenie przestaje byc bezpieczne.
Wtedy middleware nie jest technologicznym luksusem. Jest sposobem na ograniczenie chaosu i ryzyka.
Co middleware powinien przejac, a czego nie
Warstwa posrednia powinna przejac to, co musi byc wspolne i kontrolowane: translacje danych, walidacje, polityke dostepu, retry, monitoring, kolejke wyjatkow i czesc logiki procesu. Nie powinna natomiast stawac sie nowym monolitem, do ktorego wrzuca sie wszystko bez granic.
Dobra architektura integracji jest modularna. Kazdy element ma swoja role, a system docelowy nie traci mozliwosci dalszego rozwoju.
Przyklad, w ktorym taka warstwa jest uzasadniona
W projekcie integratora zamowien API dla Shoper kluczowe bylo ukrycie danych administracyjnych, kontrola masowych operacji i bezpieczne otwarcie procesu dla wielu systemow zewnetrznych. Wlasnie to jest klasyczny moment, w ktorym middleware ma sens.
Nie chodzi o to, by 'mieć middleware', tylko o to, by nie przenosic logiki i ryzyk bezposrednio do systemu, ktory nie powinien ich niesc samodzielnie.
Jak podejsc do decyzji praktycznie
Jesli masz jeden proces i dwa systemy, zacznij od prostszej integracji. Jesli wiesz, ze za chwile dojda partnerzy, nowe role i polityka dostepu, projektuj od razu z mysla o warstwie posredniej. Jesli obecny model zaczyna byc nieczytelny dla zespolu, to juz tez jest sygnal ostrzegawczy.
W takich projektach warto najpierw przejsc przez porzadny model integracji API, a dopiero potem decydowac o skali architektury.