Attualmente sto esaminando l'esempio dell'architettura dei microservizi e sto facendo fatica a rendere i miei servizi veramente autonomi.
Ho i seguenti servizi ...
- CustomerAPI
-
CustomerService
-
OrderAPI
-
OrderService
-
ProductAPI
- ProductService
Come parte di OrderAPI sto cercando di creare un ordine inviando un ID cliente e ID prodotto .
Per creare correttamente l'ordine, ho bisogno del OrderService per utilizzare quegli ID per recuperare il cliente da CustomerService e il prodotto da ProductService . Devo fare questo per garantire che gli ID forniti siano corretti. Recuperando il cliente e il prodotto, posso anche effettuare controlli commerciali I.e. un cliente di età inferiore ai 18 anni non può ordinare alcolici.
Ciò significa che il mio OrderService fa affidamento direttamente su altri servizi che impediscono l'autonomia. Significa anche che i miei servizi stanno bloccando (ho bisogno che entrambe le chiamate tornino prima che io possa continuare). Mi è stato anche detto che i microservizi non dovrebbero OTTENERE dati ma invece chiedere ai servizi di FARE qualcosa. Ciò viola anche questa regola.
Ho notato un esempio di codice su github che ha lo stesso problema che sto descrivendo ... link
Come posso riprogettare questi servizi in modo che siano autonomi?