Integracja to miejsce, w którym dwa systemy muszą uzgodnić rozumienie tych samych danych. Właśnie tam najczęściej pojawiają się błędy — nie w kodzie pojedynczej aplikacji, lecz na styku między nimi.
W tej kategorii piszemy o interfejsach API, wymianie danych, obsłudze błędów i synchronizacji, a także o tym, jak projektować integracje odporne na zmiany po drugiej stronie.
Kiedy integracja jest potrzebna, a kiedy jest nadmiarem?
Integracja jest potrzebna wtedy, gdy dwa systemy muszą widzieć te same dane albo gdy proces przechodzi przez granicę między nimi — zamówienie idzie ze sklepu do magazynu, faktura z systemu sprzedaży do księgowości. Nadmiarem staje się wtedy, gdy taniej byłoby przenieść proces do jednego systemu, niż utrzymywać most między dwoma — każdy most trzeba monitorować, wersjonować i naprawiać po zmianach po którejkolwiek stronie.
Jakie decyzje wracają przy każdej integracji?
Pierwsza: kto jest źródłem prawdy dla współdzielonych danych — bez tej decyzji każda rozbieżność kończy się ręcznym dochodzeniem, który system „ma rację". Druga: synchronicznie czy przez kolejkę — odpowiedź na żądanie jest prostsza, zdarzenia są odporniejsze na niedostępność drugiej strony. Trzecia: co się dzieje z błędami — ponowienia, kolejka rzeczy niedoręczonych, alarmowanie; integracja bez obsługi błędów działa dokładnie do pierwszej awarii partnera. Czwarta: jak wykrywać zmiany w cudzym API, zanim wykryją je użytkownicy.