[Python] [graphql] interessante alternativa/evoluzione rispetto al REST

Giovanni Porcari giovanni.porcari a softwell.it
Gio 1 Ott 2015 13:32:06 CEST


> Il giorno 30 set 2015, alle ore 22:24, Marco Paolini <markopaolini a gmail.com> ha scritto:
> 
> Se product e Payment fossero in due microservice differenti, dovremmo creare una transazione distrubita (XA) e gestire il fallimento a livello applicativo. Molto + codice, molto + difficile da testare.
> 
> 

Curiosità da parte di qualcuno con tanta 'pratica e poca teoria alle spalle:

In una situazione come quella che proponi il mio primo approccio sarebbe quello 
di avere un unico servizio che mette in una coda un identificativo temporale univoco 
con le operazioni da compiere e successivamente uno o più servizi prendono l'evento 
e ciascuno per la sua parte compie le operazioni necessarie.

Capisco che è un approccio 'naif' ma non consentirebbe appunto di segmentare un
applicativo monolitico salvando le logica delle transazioni ?

Se una transazione fallisce dovrebbe essere possibile effettuare una sorta di rollback 
dell'intera transazione proprio perchè esiste un luogo dove è presente in nuce
l'intera transazione anche se non ancora attualizzata nelle scritture necessarie
nei singoli servizi.

Insomma un po' i WAL di postgres ma nell'ottica di servizi distribuiti.

Ciao

G


Maggiori informazioni sulla lista Python