Witam
Do tej pory tworzyłem głównie monolity.
Obecnie mam do zrealizowania projekt gdzie część frontowa musi z pewnym przyczyn (zależnych od integracji z aplikacją zewnętrzną) znajdować się w jednej solucji razem z mechanizmami backendowymi w obszarze logowania i rejestracji użytkownika. Nazwijmy go moduł "A".
Druga solucja to część czysto backendowa gdzie będą realizowane wszystkie pozostałe procesy niezwiązane z zarządzaniem użytkownikiem i logowaniem.
Nazwijmy go moduł "B".
Taka organizacja tej aplikacji wynika z pewnych podziałów w organizacji w której pracuje gdzie są zespoły programistów backend i frontend i jest mocny rygor aby jedni drugim nie wchodzili w drogę "w kod".
Moje pytania są następujące.
-
Jak komunikować ze sobą te dwa "moduły" tj za pomocą jakiego narzędzia? Moduły będą wystawiały endpointy w ramach API.
Czy np moduł "A" powinien udostępniać informacje dla modułu B (lista użytkowników, informacje o kontekście użytkownika, jakieś inne dane użytkownika)?
Czy jako, że moduł "A" i moduł "B" łączą się do tej samej bazy to moduł "B" powinien sam sobie wydobywać informacje, które są wytwarzane i zarządzane w ramach modułu "A"?
I tutaj przechodzę do pytania numer 2 tj współdzielenia migracjami... -
Jak pomiędzy tymi dwoma modułami zarządzać migracjami?
Czy można realizować migracje do jednej bazy w ramach dwóch solucji (oddzielne projekty na GitLabie)?
Jeśli tak to jak? Jak aktualizować dane o tabelach, które powstały w ramach migracji w module A?