Il back-end della mia applicazione è costituito da una serie di attività autonome collegate tra loro da code di messaggistica. Hanno tutti bisogno di accedere allo stesso database SQL per poter eseguire e memorizzare i loro risultati. In questo momento, tutte le attività accedono direttamente al database SQL, ma non avendo un'entità centralizzata per gestire l'accesso a quel database, non sono sicuro di come mantenere il database (applicare le migrazioni, ...).
Una soluzione sarebbe quella di accedere al database tramite un'API, che sarebbe responsabile della manutenzione del database. Questo approccio ha anche il vantaggio di disaccoppiare l'implementazione del datastore dal codice dell'applicazione. D'altra parte, l'applicazione deve fare query molto costose (inserire un CSV da 500 MB in una tabella, ad esempio), e non sono sicuro di come le prestazioni potrebbero essere influenzate per un tale caso d'uso.
Qual è il modo "consigliato" di progettare un sistema simile?