Sto lavorando a un progetto con servizi web e ho strutturato cose in cui:
- Il servizio web contiene il livello della logica aziendale
- Una libreria che gestisce il livello di accesso ai dati
Di recente ho studiato i microservizi . Con il senno di poi, vorrei dividere il servizio in più servizi ciascuno che copre un dominio specifico del business. Cosa avrei dovuto fare con la biblioteca? Sto pensando che potrei:
- Conserva la libreria monolitica utilizzata da tutti i servizi
- Dividi la libreria in più parti (di nuovo, in base ai domini aziendali)
- Ogni libreria include tutte le interfacce con cui interagisce (il che significa ridondanza tra le librerie)
- Librerie di colla che coprono lo spazio o il confine tra due domini
Non mi piace la libreria monolitica, ma non riesco a decidere come avrei dovuto dividerlo. Non mi piace l'idea di duplicare il codice del modello, ma non mi piace l'idea delle librerie di colla neanche - sembra non intuitivo; non è semplice come dovrebbe essere.
Come si può separare un monolite in librerie gestite da domini senza duplicare interfacce e mantenere le dipendenze semplici?
Al momento, sto pensando:
- Una libreria a colla singola contenente tutte le interfacce e la logica aziendale
- Numerose librerie guidate da domini contenenti implementazione e accesso ai dati
- I servizi si traducono principalmente in e dalla colla
È questo il miglior compromesso? Sono preoccupato che la libreria di colla sia solo un mini-monolite.