Dla osób, które dzielą aplikacje monolityczne na mikrousługi, jak radzisz sobie z problemem rozbijania bazy danych. Typowe aplikacje, nad którymi pracowałem, często integrują bazy danych ze względu na wydajność i prostotę.
Jeśli masz dwie tabele, które są logicznie różne (ograniczone konteksty, jeśli wolisz), ale często wykonujesz zagregowane przetwarzanie dużych ilości tych danych, to w monolicie jest bardziej niż prawdopodobne, że unikniesz orientacji obiektowej i zamiast tego używasz standardu bazy danych JOIN, aby przetworzyć dane w bazie danych przed zwróceniem zagregowanego widoku z powrotem do warstwy aplikacji.
Jak uzasadniasz podział takich danych na mikrousługi, w przypadku których prawdopodobnie będziesz musiał „połączyć” dane za pośrednictwem interfejsu API, a nie w bazie danych.
Przeczytałem książkę Sama Newmana o mikrousługach, a w rozdziale o dzieleniu Monolitu podaje on przykład „Zerwania relacji klucza obcego”, w którym przyznaje, że łączenie w interfejsie API będzie wolniejsze - ale mówi dalej, czy Twoja aplikacja i tak jest wystarczająco szybka, czy ma znaczenie, że jest wolniejsza niż wcześniej?
Wydaje się to trochę bezmyślne? Jakie są doświadczenia ludzi? Jakich technik użyłeś, aby połączenia API działały poprawnie?