Ho letto alcuni articoli sull'architettura dei microservizi, ma nessuno prende l'argomento della transazione. Tutto ciò che dicono che questo è difficile da fare. Forse qualcuno può descrivere come gestirlo?Transazioni nei microservizi
Ma non dal lato dominio, ma dal lato tecnologia. Diciamo che abbiamo casi aziendali in cui dobbiamo invocare due servizi diversi ed entrambi apportano alcune modifiche al database. Ma come eseguire il rollback se si verifica qualche errore sul secondo?
Chi conosce alcune librerie o modelli di progettazione per questo problema?
Cosa intendi:> devi creare un servizio di livello superiore – KirkoR
Voglio dire che dovresti avere un altro servizio che inizializzerà una transazione globale e chiama i tuoi altri servizi utilizzando questa transazione per eseguire il commit/rollback in base al risultato di tutte le tue chiamate. Non so come questo risultato possa essere raggiunto esattamente, dipende dalle tecnologie che stai usando. Penso che questo articolo possa fornire alcune informazioni utili (http://docs.oracle.com/cd/E17904_01/web.1111/e13734/transaction.htm). Anway, come detto prima, è un contesto davvero difficile e sarebbe molto meglio usare le singole transazioni per ogni servizio. – davmcpaul
Qui puoi trovare un utile esempio di come viene affrontato il tuo problema: http://www.eaipatterns.com/ramblings/18_starbucks.html – davmcpaul