pl

Jak to działa?

Potrzebujesz pomocy dla biznesu?

Skontaktuj się z nami, aby uzyskać indywidualną wycenę FinMV dostosowaną do Twoich potrzeb.

Monolityczny czy mikroserwis?

Dyrektor techniczny Twojej firmy, planując uruchomienie platformy finansowej, będzie musiał wybrać opcję architektury projektu. Jakie opcje architektury są dla niego dostępne i którą lepiej wybrać?

Zacznij od najprostszej architektury zachowującej granice

Nowa platforma inwestycyjna ma jeden zespół, jedno wdrożenie i jedną bazę danych. Koszt systemu rozproszonego na tym etapie w całości przechodzi w koszty dodatkowe: wywołania sieciowe tam, gdzie wystarczyłoby wywołanie funkcji, spójność ostateczną tam, gdzie wystarczyłaby transakcja, oraz obciążenie operacyjne, na które nie ma ludzi.

Dlatego domyślnie implementacja jest modułowa: onboarding, oferty, inwestycje, płatności, dokumenty, obsługa i raportowanie żyją za jawnymi granicami wewnątrz jednego wdrażanego systemu. Modułowość zapewnia nie struktura folderów, lecz to, że każdy moduł ma własny kontrakt, własne dane i własne testy.

Usługa jest wydzielana wtedy, gdy jest ku temu powód

Moduł staje się osobną usługą przy konkretnym uzasadnieniu, a te uzasadnienia są biznesowe, a nie modowe:

  • skala — część systemu musi rosnąć lub zawodzić niezależnie od reszty
  • bezpieczeństwo — granica wymaga silniejszej izolacji, niż daje moduł wewnątrz jednego procesu
  • zgodność (compliance) — regulator lub audyt wymaga rozdzielenia uprawnień lub danych
  • wdrożenie — część jest wydawana z inną częstotliwością lub przez inny zespół
  • integracje — system zewnętrzny narzuca własny profil dostępności i obciążenia
  • organizacja — różne zespoły muszą zarządzać różnymi obszarami bez uzgadniania każdego wydania

Ponieważ granice i kontrakty już istnieją, wydzielenie usługi jest operacją planową, a nie przepisywaniem od nowa. Na tym właśnie polega sens: opcja pozostaje otwarta i tania.

Asynchroniczność tam, gdzie się opłaca

Praca, która nie powinna blokować użytkownika — uzgadnianie rozliczeń, generowanie dokumentów, callbacki dostawców, raportowanie — odbywa się przez kolejki. Brokery wiadomości, takie jak RabbitMQ czy Kafka, pojawiają się wtedy, gdy uzasadnia to obciążenie lub topologia integracji, a nie domyślnie. PostgreSQL pozostaje systemem rekordu; Redis jest używany tam, gdzie rzeczywiście potrzebny jest szybki cache lub koordynacja.

Czego nie robimy

Nie sprzedajemy monolitu i nie sprzedajemy mikrousług. Oba są odpowiedziami na pytania, które jeszcze nie zostały zadane. Nie budujemy też systemu rozproszonego tylko po to, by wyglądać poważnie: teatr architektoniczny jest drogi w utrzymaniu i trudny do przekazania.

Architektura jest dobierana na podstawie Twojej skali, obowiązków regulacyjnych, integracji i wielkości zespołu, który będzie ją eksploatował — i jest zaprojektowana tak, by mogła się zmieniać wraz z nimi.