Ho lavorato come sviluppatore web Java full stack per molti anni e tutti i progetti su cui ho lavorato sono vere per tutti e due:
- Erano tutte applicazioni multi-tenant con un database / un'architettura di schema
- Non hanno mai utilizzato un framework di sviluppo rapido delle applicazioni (solo J2EE e Spring)
Non posso negare che ci sia un sacco di codice della piastra di riscaldamento in molte delle cose che faccio per le mie attività quotidiane quindi sono interessato a padroneggiare un framework Rapid Application Development che non comprometterà al potere e sosterrà un'architettura multi-tenant. Devo investire una grande quantità di energia nella scrittura, testare e mantenere le classi DAO, oltre a fare in modo che le operazioni CRUD siano abbastanza sicure da assicurare che un tenant non possa accedere / modificare i dati di un altro titolare, quindi sembra un'opzione in stile Hibernate come se fosse un grande risparmio di tempo.
Tuttavia, Hibernate non supporta i database multi-tenant che sono uno schema db / uno. Rabbrividisco all'idea di database o schemi separati per cliente. Per prima cosa saremmo ospitati da remoto, quindi immagino che i costi di supporto di molti database per molti piccoli clienti, molti dei quali potrebbero non essere nemmeno utenti attivi, sarebbero proibitivi. In secondo luogo, un sacco di supporto tecnico va alla ricerca di anomalie dei dati nel database, e la possibilità di interrogare i dati in una posizione centrale è un risparmio di tempo inestimabile.
Spring Boot sembra una buona scelta qui, ma è basato su Hibernate che non consente ancora l'uso di un approccio Discriminator (che consentirebbe un one-database / one-schema) modello. Esiste un valido framework RAD che funzioni bene allo sviluppo di Multi-Tenant Enterprise? In alternativa, è facile / possibile implementare tale architettura in un framework esistente?