W swojej książce „Enterprise Integration Patterns : Designing, Building, and Deploying Messaging Solutions” Gregor Hohpe, Bobby Woolf definiują sześć typów projektów integracyjnych. Podział ten wykonany był już ponad piętnaście lat temu. Wydawać by się mogło, że w obecnych czasach zdominowanych przez mikroserwisy będzie archaizmem. Jednak jest on tak samo aktualny jak w 2004 roku, kiedy została wydana wspomniana książka.
Portal informacyjny
Nie chodzi tu jedynie o portale typu onet.pl, chociaż one są świetnym przykładem. Chodzi tu o wszelkie intranety, aplikacje dostarczające zagregowanych informacji z więcej niż jednej usługi. Przykładem jest strona w portalu intranetowym firmy zajmującej się doradztwem finansowym. Prezentując aktualny kurs walut z NBP, aktualny czas lokalny giełdy w USA, Japonii oraz Warszawie oraz aktualne notowania indeksu WIG20 prawdopodobnie jest klientem co najmniej trzech zewnętrznych usług sieciowych. Mało prawdopodobne jest, że wszystkie te dane przechowuje w swojej bazie, a pracownicy firmy co minutę (czy nawet sekundę) wprowadzają ręcznie aktualizacje tych danych.
Replikacja danych
W przypadku, kiedy dwa (lub więcej) systemy muszą przechowywać te same informacje oraz musimy zapewnić, żeby zawsze były one ze sobą spójne, należy zaimplementować replikację danych. Oczywiście istnieją inne, lepsze sposoby poradzenia sobie z zagadnieniem redundancji danych, to bywają sytuacje, gdzie nie będzie to możliwe. Przykładowo jeśli firma z branży eCommerce posiada dane klientów w sklepie internetowym (powiedzmy na platformie Shopify) oraz dane tych samych klientów w programie księgowym (powiedzmy z raks.pl) to wypadałoby zestawić replikację. Jeśli klient zmieni dane do faktury w sklepie, to ludzie z BOK nie będą musieli ręcznie przepisywać ich do RAKSa.
Współdzielona funkcja biznesowa
W obecnych czasach, kiedy za jedyną słuszną architekturę uznaje się wyłącznie mikroserwisy, to chyba najbardziej popularny typ projektu integracyjnego. Wydelegowanie do osobnej, współdzielonej usługi pewnej operacji biznesowej nie jest niczym odkrywczym. Przykładowo usługa do walidowania poprawności numeru NIP lub usługa w systemie eCommerce serwująca aktualne dane adresowe klienta programowi księgowemu.
Architektura zorientowana na serwisy (SOA)
Kiedy w organizacji zostaje zaimplementowanych wiele współdzielonych funkcji biznesowych, niezbędne staje się zaimplementowanie katalogu tych funkcji. Taki katalog (service discovery) jest jednym z projektów integracyjnych. Funkcje rejestrując się w katalogu dostarczają informacji o swoim interfejsie oraz adresie, pod którym można je wywołać.
Rozproszony proces biznesowy
Często pojedyncza transakcja biznesowa jest zbiorem operacji zrealizowanych przez kompletnie inne zewnętrzne systemy. Weźmy na przykład proces dodania nowego ogłoszenia w systemie aukcyjnym, gdzie zdjęcia produktów przechowywane są na Amazone S3, strona samego systemu aukcyjnego wykonana jest w PHP + MySql i hostowana na hekko.pl natomiast oferta powinna również automatycznie dodać się w porównywarce ceneo.pl. Wszystko to powinno zadziać się w momencie naciśnięcia jednego przycisku „Zapisz”. Oczywiście zapis taki uznajemy za operację atomową dlatego niepowodzenie zapisu ogłoszenia powinno również zaowocować niezapisaniem się go w porównywarce, a zdjęcie nie powinno generować niepotrzebnych kosztów za przechowywanie go na S3.
Integracja Business-to-Business
Kiedy jedna firma wystawia swoim partnerom lub klientom API poprzez które umożliwia im korzystanie z ich usług mamy do czynienia z integracją Business-to-Bisiness. Jednym z najlepszym przykładów jest integracja z systemami kurierskimi. System kurierski wystawia usługę, poprzez którą system klienta (powiedzmy sklepu internetowego) może zarejestrować paczkę oraz otrzymać gotową etykietę. Zarejestrowanie paczki może być również równoznaczne, z tym że następnego dnia rano przedstawiciel firmy kurierskiej zjawi się po odbiór paczki o określonym numerze.