Sto per imparare come funziona l'architettura dei microservizi. Finora non ho capito che ogni microservizio ha bisogno di un proprio database, il che ha senso.Come mantenere DB in sincrono quando si utilizza l'architettura dei microservizi?
Quindi diciamo che abbiamo un microservizio del cliente che è responsabile della creazione di un cliente e della restituzione di un elenco di clienti. Il servizio avrà ofcource il proprio DB cliente.
Diciamo che abbiamo un carico molto elevato su questo servizio, quindi abbiamo scelto di ridimensionare 20x.
Abbiamo 20 microservizi e ognuno ha il proprio DB e tutti i servizi sono dietro un bilanciamento del carico.
Ora un cliente desidera creare un cliente, il servizio di bilanciamento del carico invia la richiesta del client al servizio 9/20 e il cliente viene creato.
Sulla richiesta successiva lo stesso cliente vuole essere sicuro che il cliente sia stato creato e desidera visualizzare l'elenco dei clienti, su richiesta LB lo manda al servizio 11/20.
Ora, come posso assicurarmi che il servizio 9/20 abbia sincronizzato il cliente appena creato con il db di servizio 11/20?
In MSSQL ci sono funzionalità per mantenere il DB in sincrono prima di consentire il commit iniziale, per salvare prima i dati in tutti gli altri database, ma questo approccio creerà problemi a lungo termine, perché più servizi ci sono più tempo ci vorrà per fare un commit?