Abbiamo ciò che può essere definito un'applicazione distribuita : un'app web in piena regola e un piccolo servizio REST. Entrambi devono essere dispiegabili separatamente. Entrambi accedono allo stesso schema di database (in realtà condividono solo due tabelle). La funzionalità comune è incapsulata in un artefatto comune (un file JAR qui, poiché è tutto Java). Fin qui, tutto bene.
Tuttavia, non sono sicuro di come gestire correttamente le modifiche allo schema. L'app Web utilizza Flyway per gli aggiornamenti dello schema, funziona come un fascino. Ma quale dovrebbe essere la procedura consigliata se una delle tabelle condivise ha bisogno di un aggiornamento? Di chi dovrebbe essere la responsabilità dell'aggiornamento? (Al momento è l'app web che esegue tutti gli aggiornamenti, forse è abbastanza buono, ma mi preoccupa.)
Ho pensato magari a cambiare anche l'architettura per avere un'applicazione o un servizio separati che ha sia l'app web che il servizio REST come client, ma ciò renderebbe le cose difficili, in realtà non rimuovere il problema.