Per le persone che stanno suddividendo le applicazioni monolitiche in microservizi, come gestisci il connubio della rottura del database. Le applicazioni tipiche su cui ho lavorato fanno molta integrazione con il database per motivi di prestazioni e semplicità.
Se hai due tabelle che sono logicamente distinte (contesti limitati se vuoi) ma spesso esegui elaborazioni aggregate su grandi volumi di quei dati, allora nel monolite è più che probabile che eviti l'orientamento agli oggetti e utilizzi invece lo standard del tuo database Funzionalità JOIN per elaborare i dati nel database prima di restituire la visualizzazione aggregata al livello dell'app.
Come giustifichi la suddivisione di tali dati in microservizi dove presumibilmente ti verrà richiesto di "unire" i dati tramite un'API piuttosto che nel database.
Ho letto il libro Microservices di Sam Newman e nel capitolo sulla suddivisione del monolite fornisce un esempio di "Rompere le relazioni di chiavi esterne" in cui riconosce che fare un join attraverso un'API sarà più lento, ma prosegue dicendo se la tua applicazione è comunque abbastanza veloce, importa che sia più lenta di prima?
Questo sembra un po 'superficiale? Quali sono le esperienze delle persone? Quali tecniche hai utilizzato per rendere accettabili i join API?